2013-08-06 7 views
6

शामिल सभी शब्दों को निकालने के लिए मैं पाइथन रेगेक्स बनाने की कोशिश कर रहा हूं जो मुझे एक स्ट्रिंग की सभी दुनिया को हटाने की अनुमति देता है।पायथन रेगेक्स जिसमें

उदाहरण के लिए:

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

हटाने नंबर के लिए रेगुलर एक्सप्रेशन से मामूली बात है:

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

लेकिन मैं कैसे पूरे शब्द और न सिर्फ संख्या को हटाने के लिए पता नहीं है।

क्या आप कृपया मेरी मदद कर सकते हैं?

उत्तर

14

क्या आपको रेगेक्स की आवश्यकता है? क्या तुम सच में regex का उपयोग करना चाहते हैं तो आप की तरह

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

कुछ कर सकते हैं, तो आप \w*\d\w* कोशिश कर सकते हैं:

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

यह ठीक काम करता है, धन्यवाद –

संबंधित मुद्दे