2017-06-15 103 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 

注意,它在每個格式刪除電話號碼從字符串的末尾開始,保留了字符串中間的電話號碼。