gpt4 book ai didi

python - 如何获取 LaTeX 文件中的所有 `\begin{definition}...\end{definition}` block ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:45 26 4
gpt4 key购买 nike

我刚用 Latex 写完微积分的总结。

现在的主要问题是文件中包含许多我现在并不真正需要的东西。

.tex 文件包含许多我需要用心学习的定义和定理。

定义在 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 World 2!\end{定义}]]

在这个网站上我发现我可以使用正则表达式:

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,我真的不知道为什么。

编辑:

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)

输出如下:

[]
[]
[]
[]
[]

最佳答案

根据我从问题中得到的信息,您只需要 Latex 文件中的定义。您可以使用 findall 直接获取您的定义:

A = re.findall(r'{definition}(.*?)\\end{definition}', raw.read())

注意 .*? 的用法以解决 greedy正则表达式匹配

关于python - 如何获取 LaTeX 文件中的所有 `\begin{definition}...\end{definition}` block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com