如何将正则表达式匹配作为整个字符串返回?

Can*_*ic3 2 python regex

我想匹配电话号码,并返回整个电话号码,但只返回数字.这是一个例子:

(555)-555-5555
555.555.5555
Run Code Online (Sandbox Code Playgroud)

但我想使用正则表达式只返回:

5555555555
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我无法获得要返回的数字:

import re
phone_number='(555)-555-5555'

regex = re.compile('[0-9]')
r = regex.search(phone_number)
regex.match(phone_number)
print r.groups()
Run Code Online (Sandbox Code Playgroud)

但由于某种原因它只打印一个空元组?我在这里失踪的显而易见的事情是什么?谢谢.

Mar*_*oun 5

由于您没有任何捕获组,因此结果为空,请参阅文档以获取详细信息.

您应该将其更改为group(),现在您将获得第一个数字作为匹配.但这不是你想要的,因为引擎在遇到非数字字符时停止并将匹配返回到那里.

您只需删除所有非数字字符:

re.sub('[^0-9]', '', '(555)-555-5555')
Run Code Online (Sandbox Code Playgroud)

范围0-9被否定,因此正则表达式匹配任何不是数字的东西,然后用空字符串替换它.