regex modu中.group()的正确语法是什么

2024-06-25 23:40:44 发布

您现在位置:Python中文网/ 问答频道 /正文

import re

phoneNumberRegex = re.compile(r'\d{3}-\d{3}-\d{4}')
mo = phoneNumberRegex.search('My number is 415-55-4242.')
print('Phone number found: ' + mo.group(0))

这是我用过的方法试图找出一些错误的代码都导致了这个错误

^{pr2}$

Tags: 方法importrenumbersearchismy错误
2条回答

使用^{}是可以的。在

但是,415-55-4242\d{3}-\d{3}-\d{4}不匹配,因为字符串的中间部分只包含2个数字。在

>>> import re
>>> re.search(r'\d{3}-\d{3}-\d{4}', 'My number is 415-55-4242.') # does not match => None
>>> re.search(r'\d{3}-\d{2}-\d{4}', 'My number is 415-55-4242.') # matches => MatchObject
<_sre.SRE_Match object; span=(13, 24), match='415-55-4242'>

要防止错误发生,您需要保护最后一个语句:

^{pr2}$

更新

如果不想匹配12345-123-12345,则需要使用单词边界(\b):

r'\b\d{3}-\d{3}-\d{4}\b'

它的工作组是正确的方法。但是,在regex中需要一个捕获组,而且regex也有点错误。请使用以下代码:

import re

phoneNumberRegex = re.compile(r'(\d{3}-\d{2}-\d{4})')
mo = phoneNumberRegex.search('My number is 415-55-4242.')
print(mo.group(0))

相关问题 更多 >