2014-09-24 32 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

相關問題