2013-08-06 18 views
6
enthält

Ich versuche, einen Python-Regex zu machen, der mir erlaubt, alle Welten eines Strings zu entfernen, der eine Zahl enthält.Python Regex, um alle Wörter zu entfernen, die Nummer

Zum Beispiel:

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

Die Regex zum Löschen Nummer ist trivial:

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

Aber ich weiß nicht, wie das ganze Wort zu löschen und nicht nur die Nummer.

Könnten Sie mir bitte helfen?

Antwort

14

Benötigen Sie eine Regex? Sie können, wie etwas tun

>>> 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' 

Wenn Sie wirklich verwenden regex möchten, können Sie \w*\d\w* versuchen:

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

euuh nein Ich brauche nicht wirklich ein regex, ich weiß nicht, warum ich fixiert bin drauf ^^
Ihre 2 Antworten funktioniert so Thanks you very much :) –

+0

Die Regex Befehl funktionierte nicht für mich –

7

Hier ist mein Ansatz:

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

Es funktioniert auch gut, danke –

Verwandte Themen