Edg*_*mes 2 python regex pattern-matching
import re
str="Everyone loves Stack Overflow"
print(re.findall("[ESO][^.]",str))
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样做[^.].我认为它只匹配不是字符的字符 - 换句话说:什么都没有!但输出如下:
['Ev', 'St', 'Ov']
Run Code Online (Sandbox Code Playgroud)
有人可以对此有所了解吗?[^.]在谷歌搜索类似的东西是不可能的,关于正则表达式的pythondocs也没有帮助.
gee*_*aur 15
大多数正则表达式特殊字符在字符类(方括号)中失去其特殊含义,因此在.匹配任何字符时,[.]匹配文字.并[^.]匹配除以外的任何字符..有时您会看到人们将.方括号中的字符换行,以确保它在字面上处理,而不必担心正则表达式库中的任何角落情况.