匹配乳胶的正则表达式

时间:2011-12-13 05:55:57

标签: python regex

我试图通过在Python中编写类似于latex2html的东西来学习正则表达式。但是我很难弄清楚如何匹配乳胶方程式 - 形式为$ ... $的地方......可以是LaTeX中的任何表达式,同时允许转义序列。

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

2 个答案:

答案 0 :(得分:3)

您可以使用负向lookbehind来确保您不匹配\ $。类似的东西:

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

E.g。

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

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

答案 1 :(得分:0)

Petar的答案应该让你开始。

查看一些用于处理LaTeX标记的Python代码示例可能也会有所帮助:http://hg.python.org/cpython/file/bf7329190ca6/Tools/scripts/texcheck.py