Python中的正则表达式(正则表达式)模式匹配

时间:2015-02-09 21:49:07

标签: python regex

我在python中的正则表达式如下:

\\newcommand\\shortpage[.*?][.*?]{.*?{.*?}}

我想要匹配的文字是:

\newcommand\shortpage[1][1]{\enlargethispage*{-#1\baselineskip}} % see Latex Companion, 2nd ed., p. 234

如何修复正则表达式以使其与我的文本正确匹配?

谢谢。

1 个答案:

答案 0 :(得分:2)

括号和大括号是元字符,你需要逃避它们:

\\newcommand\\shortpage\[.*?\]\[.*?\]\{.*?\{.*?\}\}

实际上,如果可以从上下文推断出它们不被用作量词(如x{2,4}中),那么许多正则表达式引擎都不要求你逃避括号,但最好是明确的。

此外,如果可能的话,.*.*?应该替换为比“匹配任何内容”更具体的内容:

\\newcommand\\shortpage\[[^\]]*\]\[[^\]]*\]\{[^}]*\{[^}]*\}\}