Python正则表达式:如何对不立即开始的字符串进行负向前视?
来自 https://docs.python.org/2/library/re.html#regular-expression-syntax :
(?!...)
这个表达式的意思是,如果后面不是...,那么就匹配。这叫做负向前瞻断言。举个例子,Isaac (?!Asimov) 只有在后面不是'Asimov'的情况下,才会匹配'Isaac '。
但是,如果在Isaac和Asimov之间有一个或多个单词,该怎么处理呢?
1 个回答
4
Isaac(?!.*Asimov)
使用负向前瞻来匹配任何以“Asimov”结尾的字符序列。如果你想让点号(.
)也能匹配换行符,可以使用[\s\S]
或者DOTALL
这个标志。