从python中删除字符串中的电话号码

时间:2017-06-15 20:56:25

标签: python regex string

我知道有一个类似的问题here,但这实际上删除了所有数字。我只想删除这种格式的数字:

###-###-####
(###) ###-####
1-###-###-####

从字符串的末尾开始。 我可以使用正则表达式,获取字符串的最后n个字符,使用" - "作为分隔符等,但是我有一种更容易的方法吗?

1 个答案:

答案 0 :(得分:2)

要从字符串末尾删除电话号码,使用正则表达式对我来说似乎很容易:

stuff = [
    'My number is 212-555-1212',
    'My number is 212-555-1212, also',
    'What about (212) 555-1212',
    'or even 1-212-555-1212',
]

import re

for line in stuff:
    result = re.sub(r'((1-\d{3}-\d{3}-\d{4})|(\(\d{3}\) \d{3}-\d{4})|(\d{3}-\d{3}-\d{4}))$', '', line);
    print(result)

输出:

$ python x.py
My number is 
My number is 212-555-1212, also
What about 
or even 

请注意,它从字符串末尾删除了每种格式的电话号码,但保留了字符串中间的电话号码。