注册 登录
编程论坛 Python论坛

一个正则表达式的问题

ilsoviet1917 发布于 2021-02-23 13:44, 975 次点击
程序代码:
phoneRegex = (r'''(
    (\d{3}|\(\d{3}\))?   
    (\s|-|.)?
    (\d{3})
    (\s|-|.)
    (\d{4})
    (\s*(ext|x|ext\.)\s*(\d{2,5}))?
)
''', re.VERBOSE)


书上的关于正则表达式找电话号码的例题,第八组是分机号,但是这里面哪个是第八组?只有六组吧?
2 回复
#2
fall_bernana2021-02-23 17:58
以下是引用ilsoviet1917在2021-2-23 13:44:55的发言:

phoneRegex = (r'''(
    (\d{3}|\(\d{3}\))?   
    (\s|-|.)?
    (\d{3})
    (\s|-|.)
    (\d{4})
    (\s*(ext|x|ext\.)\s*(\d{2,5}))?
)''', re.VERBOSE)

书上的关于正则表达式找电话号码的例题,第八组是分机号,但是这里面哪个是第八组?只有六组吧?

程序代码:

>>> m=phoneRegex.match('222-444-666ext88')
>>> print(m)
None
>>> m=phoneRegex.match('222-444-6666ext88')
>>> print(m)
<_sre.SRE_Match object; span=(0, 17), match='222-444-6666ext88'>
>>> print(m.group(0))
222-444-6666ext88
>>> print(m.group(1))
222-444-6666ext88
>>> print(m.group(2))
222
>>> print(m.group(3))
-
>>> print(m.group(4))
444
>>> print(m.group(5))
-
>>> print(m.group(6))
6666
>>> print(m.group(7))
ext88
>>> print(m.group(8))
ext
>>> print(m.group(9))
88
#3
sssooosss2021-02-24 08:26
共同学习
1