1
我想写一个Python正则表达式来匹配一个字符串中的数字,后跟一个逗号。例如,我想在34,
内匹配34
。但是,我使用正则表达式逗号匹配与号码一起:为什么在这个组中获得一个逗号?
>>> import re
>>> r = r'^(\d+),?$'
>>> re.match(r, '123,').group(0)
'123,'
为什么蟒蛇匹配逗号时,我排除在捕获组逗号?
我想写一个Python正则表达式来匹配一个字符串中的数字,后跟一个逗号。例如,我想在34,
内匹配34
。但是,我使用正则表达式逗号匹配与号码一起:为什么在这个组中获得一个逗号?
>>> import re
>>> r = r'^(\d+),?$'
>>> re.match(r, '123,').group(0)
'123,'
为什么蟒蛇匹配逗号时,我排除在捕获组逗号?
0组是整个正则表达式 - 它将包含正则表达式匹配的整个字符串。该捕获组[与(
和)
表示]从1
编号只提取号码,您可以简单地使用group(1)
:
>>> import re
>>> r = r'^(\d+),?$'
>>> re.match(r, '123,').group(1)
'123'
有关分组的更多信息,请参阅official documentation。
因为你没有排除正则表达式中的逗号。如果你不想匹配某些东西,请不要将其包含在正则表达式中。 – sln 2014-09-24 22:06:12