【问题标题】:Regular Expression [^.] in PythonPython 中的正则表达式 [^.]
【发布时间】:2011-06-26 18:15:59
【问题描述】:
import re
str="Everyone loves Stack Overflow"
print(re.findall("[ESO][^.]",str))

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

['Ev', 'St', 'Ov']

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

【问题讨论】:

  • 你到底想解决什么问题?
  • @Sentinel 这只是为了让我更好地理解这些概念。将有助于未来的努力;)

标签: python regex pattern-matching


【解决方案1】:

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

【讨论】:

  • 呃!我已经盯着它看了半个小时,无法理解。谢谢!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2011-08-06
      • 2010-11-03
      • 1970-01-01
      相关资源
      最近更新 更多