【发布时间】:2012-12-06 13:01:06
【问题描述】:
(?<!(asp|php|jsp))\?.* 模式在 PCRE 中有效,但在 Python 中无效。
那么我该怎么做才能让这个正则表达式在 Python 中工作呢? (Python 2.7)
【问题讨论】:
-
怎么不行?它会给出错误吗?如果是这样,请发布错误。它与您的期望不符吗?如果是这样,请将代码发布在您使用它的位置,并显示您获得的输出与您期望的输出。
-
这里是 re 模块的 doc,明确声明支持否定的后向断言。
-
只要所有备选方案都具有相同的长度,负向后追溯就可以正常工作。所以这有效
(?<!asp|php|jsp),但不是这(?<!asp|php|html)。 -
@georg 你将如何通过lookbehinds适应不同长度的字符串?
-
@physlexic: 正则表达式 (pypi.python.org/pypi/regex) 可以做到这一点
标签: python regex pcre negative-lookbehind