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

注それは各形式で電話番号を削除することを文字列の最後から、まだ文字列の中央に電話番号を保存しました。

関連する問題