用正则表达式匹配python中由空格包围的括号
为什么下面的代码块不匹配这些参数用正则表达式匹配python中由空格包围的括号,python,regex,Python,Regex,为什么下面的代码块不匹配这些参数 In [27]: import re In [28]: re.match('.*?([\(]*)', ' (((( ' ).groups() Out[28]: ('',) 展示我的评论: import re >>> re.match('.*?([\(]*)', ' (((( ' ).groups() ('',) >>> re.match('.*?([\(]+)', ' (((( ' ).groups() ('((
In [27]: import re
In [28]: re.match('.*?([\(]*)', ' (((( ' ).groups()
Out[28]: ('',)
展示我的评论:
import re
>>> re.match('.*?([\(]*)', ' (((( ' ).groups()
('',)
>>> re.match('.*?([\(]+)', ' (((( ' ).groups()
('((((',)
>>>
注意-您甚至不需要在[]
中使用反斜杠,因为特殊字符失去了意义。所以
>>> re.match('.*?([(]+)', ' (((( ' ).groups()
('((((',)
>>>
也很有效
这是因为您的“非贪婪”第一个量词(
*?
)不需要给第二个量词任何东西-因为第二个量词对零匹配感到满意。演示我的评论:
import re
>>> re.match('.*?([\(]*)', ' (((( ' ).groups()
('',)
>>> re.match('.*?([\(]+)', ' (((( ' ).groups()
('((((',)
>>>
注意-您甚至不需要在[]
中使用反斜杠,因为特殊字符失去了意义。所以
>>> re.match('.*?([(]+)', ' (((( ' ).groups()
('((((',)
>>>
也很有效
这是因为您的“非贪婪”第一个量词(
*?
)不需要给第二个量词任何东西-因为第二个量词对零匹配感到满意。演示我的评论:
import re
>>> re.match('.*?([\(]*)', ' (((( ' ).groups()
('',)
>>> re.match('.*?([\(]+)', ' (((( ' ).groups()
('((((',)
>>>
注意-您甚至不需要在[]
中使用反斜杠,因为特殊字符失去了意义。所以
>>> re.match('.*?([(]+)', ' (((( ' ).groups()
('((((',)
>>>
也很有效
这是因为您的“非贪婪”第一个量词(
*?
)不需要给第二个量词任何东西-因为第二个量词对零匹配感到满意。演示我的评论:
import re
>>> re.match('.*?([\(]*)', ' (((( ' ).groups()
('',)
>>> re.match('.*?([\(]+)', ' (((( ' ).groups()
('((((',)
>>>
注意-您甚至不需要在[]
中使用反斜杠,因为特殊字符失去了意义。所以
>>> re.match('.*?([(]+)', ' (((( ' ).groups()
('((((',)
>>>
也很有效
这是因为您的“非贪婪”第一个量词(
*?
)不需要给第二个量词任何东西,因为第二个量词对零匹配感到满意。在您的情况下,*?
意味着一切,因为您使用了[\(]*
表示0或更多。因此,将*
更改为+
将适用于您,因为+
表示1或更多
re.match('.*?([\(]+)', ' (((( ' ).groups()
在您的情况下,
*?
意味着一切,因为您使用了[\(]*
,表示0或更多。因此,将*
更改为+
将对您起作用,因为+
意味着1或更多
re.match('.*?([\(]+)', ' (((( ' ).groups()
在您的情况下,
*?
意味着一切,因为您使用了[\(]*
,表示0或更多。因此,将*
更改为+
将对您起作用,因为+
意味着1或更多
re.match('.*?([\(]+)', ' (((( ' ).groups()
在您的情况下,
*?
意味着一切,因为您使用了[\(]*
,表示0或更多。因此,将*
更改为+
将对您起作用,因为+
意味着1或更多
re.match('.*?([\(]+)', ' (((( ' ).groups()
将第二个星号设为a
+
:由于“零匹配”,所以“非贪婪”第一个量词没有理由“给予”第二个量词。将第二个星号设为a+
:由于“零匹配”,所以“非贪婪”第一个量词没有理由“给予”第二个量词可以。将第二个星号设为a+
:非贪婪的第一个量词没有理由“给予”第二个量词,因为“零匹配”是可以的。将第二个星号设为a+
:非贪婪的第一个量词没有理由“给予”第二个量词,因为“零匹配”是可以的。