Python 使用finder的正则表达式

Python 使用finder的正则表达式,python,regex,Python,Regex,我试图找出这个表达式: p = re.compile ("[I need this]") for m in p.finditer('foo, I need this, more foo'): print m.start(), m.group() 我需要理解为什么我在第22次计数中得到“e” 并正确地重新编写。[]表示一个字符类,也就是说,在您的情况下,[我需要这个]将代表:匹配一个字符,该字符是I、n、e、d、t、h、I、s和(可能)空格中的一个。它相当于[Inedthis]。如果您想

我试图找出这个表达式:

p = re.compile ("[I need this]")
for m in p.finditer('foo, I need this, more foo'):
    print m.start(), m.group()
我需要理解为什么我在第22次计数中得到“e”
并正确地重新编写。

[]
表示一个字符类,也就是说,在您的情况下,[我需要这个]将代表:匹配一个字符,该字符是I、n、e、d、t、h、I、s和(可能)空格中的一个。它相当于
[Inedthis]
。如果您想匹配整个短语,请省略括号。如果还想匹配括号,请将其转义:
\[I…\]

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

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

如果要搜索组:
(我需要这个)


有关详细信息,请参见。

您应该标记我需要的语言。我对括号有更好的理解。
>>> 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