繁体   English   中英

Python正则表达式负面观察

[英]Python Regex Negative Lookbehind

模式(?<!(asp|php|jsp))\\?.*在PCRE中有效,但在Python中不起作用。

那么我该怎么做才能让这个正则表达式在Python中运行? (Python 2.7)

它对我来说非常好。 你可能错了吗? 确保使用re.search而不是re.match

>>> import re
>>> s = 'somestring.asp?1=123'
>>> re.search(r"(?<!(asp|php|jsp))\?.*", s)
>>> s = 'somestring.xml?1=123'
>>> re.search(r"(?<!(asp|php|jsp))\?.*", s)
<_sre.SRE_Match object at 0x0000000002DCB098>

这正是您的模式应该如何表现的。 正如glglgl所提到的,如果将Match对象分配给变量(比如m )然后调用m.group() ,则可以得到匹配。 产生?1=123

顺便说一句,你可以省略内括号。 这种模式是等效的:

(?<!asp|php|jsp)\?.*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM