2013-08-06 9 views
6

数字を含む文字列のすべての世界を削除できるPython正規表現を作成しようとしています。例えば数字を含むすべての単語を削除するPythonの正規表現

in = "ABCD abcd AB55 55CD A55D 5555" 
out = "ABCD abcd" 

削除数のための正規表現は簡単です:

print(re.sub(r'[1-9]','','Paris a55a b55 55c 555 aaa')) 

しかし、私は単語全体だけでなく、番号を削除する方法がわかりません。

お願いします。

答えて

14

正規表現が必要ですか?あなたはあなたが本当に正規表現を使用する場合は、\w*\d\w*を試すことができます何か

>>> words = "ABCD abcd AB55 55CD A55D 5555" 
>>> ' '.join(s for s in words.split() if not any(c.isdigit() for c in s)) 
'ABCD abcd' 

のような操作を行うことができます。

>>> re.sub(r'\w*\d\w*', '', words).strip() 
'ABCD abcd' 
+0

euuh正規表現、私はそれに固定されている理由を知りません^^
あなたの2つの答えは正常に動作しますので、ありがとうございます:) –

+0

正規表現のコマンドは私のために働いていません –

7

ここに私のアプローチです:何も私が本当に必要ません

>>> import re 
>>> s = "ABCD abcd AB55 55CD A55D 5555" 
>>> re.sub("\S*\d\S*", "", s).strip() 
'ABCD abcd' 
>>> 
+0

それはまた、うまく動作します、ありがとう –

関連する問題