2017-06-15 81 views
0

我知道有一个类似的问题here但这实际上删除所有数字。我只想删除这种格式的数字:从python中的字符串中删除电话号码

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

从一个字符串的末尾。 我可以使用正则表达式,获取字符串的最后n个字符,使用“ - ”作为分隔符等,但有没有更容易的方法我失踪?

+0

我不明白“*获取字符串的最后n个字符,使用” - “作为分隔符,等*”。你可以提供一个简短的程序,做到你想要的,甚至不雅? –

回答

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 

注意,它在每个格式删除电话号码从字符串的末尾开始,保留了字符串中间的电话号码。