Python正则表达式:如何对不立即开始的字符串进行负向前视?

2 投票
1 回答
1127 浏览
提问于 2025-04-18 08:01

来自 https://docs.python.org/2/library/re.html#regular-expression-syntax :

(?!...)
这个表达式的意思是,如果后面不是...,那么就匹配。这叫做负向前瞻断言。举个例子,Isaac (?!Asimov) 只有在后面不是'Asimov'的情况下,才会匹配'Isaac '

但是,如果在IsaacAsimov之间有一个或多个单词,该怎么处理呢?

1 个回答

4
Isaac(?!.*Asimov)

使用负向前瞻来匹配任何以“Asimov”结尾的字符序列。如果你想让点号(.)也能匹配换行符,可以使用[\s\S]或者DOTALL这个标志。

撰写回答