3

我试图弄清楚这个表达式:

p = re.compile ("[I need this]")
for m in p.finditer('foo, I need this, more foo'):
    print m.start(), m.group()

我需要了解为什么我在计数 22 中得到“e”并正确地重写它。

4

2 回答 2

2

[]表示一个字符类,也就是说,在你的情况下,[I need this] 将代表:匹配一个字符,它是以下之一:I、n、e、d、t、h、i、s 和,(也许)空间。它相当于[Inedthis ]。如果您想匹配整个短语,请省略括号。如果您还想匹配括号,请将它们转义:\[I ... \].

于 2013-08-11T01:02:11.573 回答
2

通过使用[],您正在搜索字符类[ Idehinst],即字符集' ', 'I', 'd', 'e', 'h', 'i', 'n', 's', 't'

使用(...)匹配括号内的任何正则表达式,并指示组的开始和结束。

如果要搜索组:(I need this)

>>> import re
>>> p = re.compile ("(I need this)")
>>> for m in p.finditer('foo, I need this, more foo'):
...     print m.start(), m.group()
... 
5 I need this

有关详细信息,请参阅7.2.1。官方文档中的正则表达式语法

于 2013-08-11T01:15:48.957 回答