我明白了:
import re;
print re.findall(r"q(?=u)", "qqq queen quick qeel")
> ['q', 'q'] # for queen and quick
但我不明白:
import re;
print re.findall(r"q(?!=u)", "qqq queen quick qeel")
> ['q', 'q', 'q', 'q', 'q', 'q'] # every q matches
我预计只有4个q匹配,因为负向前瞻应该会在单词 qeel 中看到,例如,q之后的字母不是 u。
是什么给出了?
答案 0 :(得分:2)
是
import re
print(re.findall(r"q(?!u)", "qqq queen quick qeel"))
# ---^---
# ['q', 'q', 'q', 'q']
<小时/> 没有
=
,那就是。否则,您不希望前面有=u
,这对q
的所有都是正确的。一般来说,通过(?=...)
形成正向前瞻,而负面前瞻只是(?!...)
Sidenote :行末不需要;
,除非你想把所有内容写在一行不被认为是&#34; Pythonic&#34;但完全有效:
import re; print(re.findall(r"q(?!u)", "qqq queen quick qeel"))