2014-09-24 56 views
1

我想写一个Python正则表达式来匹配一个字符串中的数字,后跟一个逗号。例如,我想在34,内匹配34。但是,我使用正则表达式逗号匹配与号码一起:为什么在这个组中获得一个逗号?

>>> import re 
>>> r = r'^(\d+),?$' 
>>> re.match(r, '123,').group(0) 
'123,' 

为什么蟒蛇匹配逗号时,我排除在捕获组逗号?

+0

因为你没有排除正则表达式中的逗号。如果你不想匹配某些东西,请不要将其包含在正则表达式中。 – sln 2014-09-24 22:06:12

回答

5

0组是整个正则表达式 - 它将包含正则表达式匹配的整个字符串。该捕获组[与()表示]从1

编号只提取号码,您可以简单地使用group(1)

>>> import re 
>>> r = r'^(\d+),?$' 
>>> re.match(r, '123,').group(1) 
'123' 

有关分组的更多信息,请参阅official documentation

相关问题