У меня есть эта строка (html):
html = 'x<sub>i</sub> - y<sub>i)<sub>2</sub>'
Я бы хотел преобразовать эту строку html в латекс надежным способом.Позвольте мне объяснить:
<sub>SOMETHING</sub>
-> преобразовано в _{SOMETHING}
Я уже знаю, как это сделать:
latex = re.sub(r'<sub>(.*?)</sub>',r'_{\1} ', html)
Иногда отсутствует первая часть
<sub>
или ее закрывающий тег, как в примере строки.В этом случае выходные данные все равно должны быть правильными.
Итак, как я думал об этом: после запуска 1 я беру строку после <sub>
и что-нибудь до </sub>
с помощью _{SOMETHING}
text = re.sub(r'<sub>(.*?)</sub>',r'_{\1} ', html)
print(text)
# if missing part:
text = re.sub(r'<sub>(.*?)',r'_{\1} ', text)
print(text)
latex = re.sub(r'(.*?)</sub>',r'_{\1} ', text)
… но я получаю:
x_{i} - y_{i)<sub>2}
x_{i} - y_{i)_{} 2}
x_{i} - y_{i)_{} 2}
Что я хотел бы получить:
x_{i} - y_{i})_{2}