簡體   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