Python中的正则表达式[^.]

Python中的正则表达式[^.],python,regex,pattern-matching,Python,Regex,Pattern Matching,我不明白为什么[^.]会做任何事情。我认为它只匹配非字符的字符-换句话说:没有!但结果如下: import re str="Everyone loves Stack Overflow" print(re.findall("[ESO][^.]",str)) 有人能解释一下吗?在google上搜索类似于[^.]的东西是不可能的,而关于正则表达式的pythondocs也没有帮助。大多数正则表达式特殊字符在字符类(方括号)中失去其特殊意义,因此当匹配任何字符时,[.]匹配文字,[^.]匹配除以外的任何

我不明白为什么
[^.]
会做任何事情。我认为它只匹配非字符的字符-换句话说:没有!但结果如下:

import re
str="Everyone loves Stack Overflow"
print(re.findall("[ESO][^.]",str))

有人能解释一下吗?在google上搜索类似于
[^.]
的东西是不可能的,而关于正则表达式的pythondocs也没有帮助。

大多数正则表达式特殊字符在字符类(方括号)中失去其特殊意义,因此当
匹配任何字符时,
[.]
匹配文字
[^.]
匹配除
以外的任何字符。有时你会看到人们将像
这样的字符用方括号括起来,只是为了确保它是按字面意思处理的,而不必担心正则表达式库中的任何特殊情况。

字符类
[]
有自己的小语言。具体来说,字符类中的点
与实际的
匹配(并且不是通配符)。

大多数字符在字符组中时会失去其特殊意义


所以
匹配任何字符,但
[.]
只匹配点。因此,
[^.]
匹配所有不是点的东西。

你到底想解决什么问题?@Sentinel这只是为了让我更好地理解这些概念。将有助于今后的努力;)嗯!!我盯着它看了半个小时,都不明白。非常感谢。
['Ev', 'St', 'Ov']