我知道有一个类似的问题here,但这实际上删除了所有数字。我只想删除这种格式的数字:
###-###-####
(###) ###-####
1-###-###-####
从字符串的末尾开始。 我可以使用正则表达式,获取字符串的最后n个字符,使用" - "作为分隔符等,但是我有一种更容易的方法吗?
答案 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
请注意,它从字符串末尾删除了每种格式的电话号码,但保留了字符串中间的电话号码。