我有一个大量使用regexp的python模板引擎。它使用如下串联:

re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" )

我可以修改单个子字符串(regexp1,regexp2等)。

是否有任何轻巧的表达式什么都不匹配,我可以在不需要任何匹配的模板中使用它?不幸的是,有时将'+'或'*'附加到regexp原子上,所以我不能使用空字符串-这将引发“无重复”错误。

最佳答案

这不应该匹配任何东西:

re.compile('$^')

因此,如果用'$ ^'替换regexp1,regexp2和regexp3,将不可能找到匹配项。除非您使用多行模式。

经过一些测试,我找到了更好的解决方案
re.compile('a^')

不可能匹配,并且将比以前的解决方案更早失败。您可以将a替换为其他任何字符,但始终无法匹配

09-08 09:28