首页 > 解决方案 > 加入5位数字组的正则表达式

问题描述

我正在尝试从字符串中提取 10 位电话号码。在某些情况下,数字在 2 位或 5 位数字后用空格分隔。如何合并这些数字以获得 10 位数字的最终计数?

mystr='(R) 98198 38466 (some Text) 9702977470'

import re
re.findall('\d+' , mystr)

关闭,但不正确:

['98198', '38466', '9702977470']

预期成绩:

['9819838466', '9702977470']

我可以编写python代码来连接'98198'和'38466',但我想知道是否可以使用正则表达式。

标签: regex

解决方案


您可以先删除非数字。

>>> mydigits = re.sub(r'\D', '', mystr)
>>> mydigits
'98198384669702977470'
>>> re.findall(r'.{10}', mydigits)
['9819838466', '9702977470']

推荐阅读