匹配LaTeX的正则表达式

4 投票
2 回答
2072 浏览
提问于 2025-04-17 08:16

我正在尝试通过在Python中写类似latex2html的东西来学习正则表达式。但是,我在匹配LaTeX公式时遇到了困难——这些公式的形式是$ ... $,其中的...可以是任何LaTeX表达式,同时还要允许转义序列的存在。

换句话说,我的问题是关于$\$$的。我希望正则表达式能够匹配$\$$,而不仅仅是$\$。

2 个回答

1

Petar的回答可以帮助你入门。

你也可以看看一个处理LaTeX标记的Python代码示例,这可能会对你有帮助: http://hg.python.org/cpython/file/bf7329190ca6/Tools/scripts/texcheck.py

4

你可以使用负向前瞻来确保你不会匹配到 \$. 这就像是:

\\$.*?(?<!\\\\)\\$

举个例子:

print re.findall("\\$.*?(?<!\\\\)\\$", "$x= \$12$ and $x=12$")

这样会找到两个匹配项:$x= \$12$$x=12$

撰写回答