Я только что закончил писать сводку для исчисления в латексе.Как проанализировать файл LaTex
Основная проблема теперь в том, что файлы содержат много вещей, которые мне сейчас не нужны.
. Файлы .tex содержат много определений и теорем, которые мне нужно изучать наизусть.
Определения имеют свое собственное определение в файле текс, так что любое определение в файле будет начинаться с:
\begin{definition}
и заканчивается
\end{definition}
И то же самое для теорем.
Мне нужно написать что-нибудь, чтобы вынуть все, что находится внутри \begin{}...\end{}
.
Например, в списке под названием A:
\begin{document}
\begin{center}
\begin{definition} Hello WOrld! \end{definition}
\begin{example}A+B \end{example}
\begin{theorem} Tre Capre \end{theorem}
\begin{definition} Hello WOrld2! \end{definition}
\end{center}
\end{document}
должна содержать: [[\begin{definition} Hello WOrld! \end{definition}],[\begin{theorem} Tre Capre \end{theorem}],[\begin{definition} Hello WOrld2! \end{definition}]]
Глядя на этом сайте, я обнаружил, что я могу использовать регулярные выражения:
for i in range(5):
x = i+1
raw = open('tex/chapter' + str(x) + '.tex')
A = []
for line in raw:
A.append(re.match(r'(\begin{definition})://.*\.(\end{definition})$', line))
print(A)
но выходные это всего лишь None
, и я действительно не знаю, почему
Edit:
import re
for i in range(5):
x = i+1
raw = open('tex/chapter' + str(x) + '.tex')
A = re.findall(r'\\begin{definition}(.*?)\\end{definition}', raw.read())
print(A)
выход следующее:
[]
[]
[]
[]
[]
Я бы намекнуть вам на процессоре шаблона LILE jinja2 –
Добавить ссылку сайта, потому что на самом деле не совсем ясно, чего вы пытаетесь достичь через 're.match (r '(\ begin {definition}): //.* \. (\ end {definition}) $', line)' – sgp