我在python中的正则表达式如下:
\\newcommand\\shortpage[.*?][.*?]{.*?{.*?}}
我想要匹配的文字是:
\newcommand\shortpage[1][1]{\enlargethispage*{-#1\baselineskip}} % see Latex Companion, 2nd ed., p. 234
如何修复正则表达式以使其与我的文本正确匹配?
谢谢。
答案 0 :(得分:2)
括号和大括号是元字符,你需要逃避它们:
\\newcommand\\shortpage\[.*?\]\[.*?\]\{.*?\{.*?\}\}
实际上,如果可以从上下文推断出它们不被用作量词(如x{2,4}
中),那么许多正则表达式引擎都不要求你逃避括号,但最好是明确的。
此外,如果可能的话,.*
和.*?
应该替换为比“匹配任何内容”更具体的内容:
\\newcommand\\shortpage\[[^\]]*\]\[[^\]]*\]\{[^}]*\{[^}]*\}\}