2009-03-06 13 views
7

मैं ईमेल पतों की एक स्ट्रिंग को काटना चाहता था जिसे अल्पविराम और श्वेत-स्थान के किसी भी संयोजन से अलग किया जा सकता है।पायथन रेगेक्स दो डिलीमीटरों में से एक द्वारा स्ट्रिंग को विभाजित करता है

और मुझे लगा कि यह बहुत सीधी-सपाट होगा:

sep = re.compile('(\s*,*)+') 
print sep.split("""[email protected], [email protected] 

    [email protected],,[email protected]""") 

लेकिन ऐसा नहीं है। मैं एक regex कि इस तरह की कुछ खाली स्लॉट नहीं छोड़ देंगे नहीं मिल सकता है:

['[email protected]', '', '[email protected]', '', '[email protected]', '', '[email protected]'] 

मैं विभिन्न संयोजनों की कोशिश की है, लेकिन कोई भी काम करने के लिए लग रहे हैं। क्या यह वास्तव में संभव है, regex के साथ?

+1

यह फिर बिना एक समुदाय विकी पोस्ट नहीं होना चाहिए। – Triptych

+1

यह वास्तव में एक समुदाय विकी पोस्ट नहीं होना चाहिए। लेकिन फिर भी, यह समस्या regexes का उपयोग कर अच्छी तरह से हल किया गया है। एक वैध regex उपयोग! +1 – batbrat

+0

मुझे लगता है क्योंकि उसने खुद को उत्तर दिया है – hasen

उत्तर

14

दोह!

यह बस यही है।

sep = re.compile('[\s,]+') 
+0

पर्ल में (शायद पाइथन में, यह तथ्य है कि ऐसा लगता है कि यह एक ही काम कर रहा है)() एस को रेगेक्स में उपयोग करते समय विभाजित करने के लिए विभाजन() को संरक्षित करने का कारण बनता है (माता-पिता के बीच), और इच्छित वस्तुओं के बीच पैटर्न मिलान के साथ एक सूची वापस करें। तो हो सकता है कि एक विभाजन में() एस का उपयोग न करें। –

2

मैं निम्नलिखित ...

>>> sep= re.compile(r',*\s*') 
>>> sep.split("""[email protected], [email protected] 

    [email protected],,[email protected]""") 
['[email protected]', '[email protected]', '[email protected]', '[email protected]'] 

भी अपने परीक्षण डाटा पर काम करने लगता है कौन सा पसंद है।

+0

+1: मुझे नहीं पता कि यह पहले क्यों मतदान किया गया था, लेकिन यह काफी अच्छी तरह से काम करता है। – tgray

+0

वह रेगेक्स खाली स्ट्रिंग से मेल खाएगा, क्योंकि यह सब कुछ के लिए स्टार क्वांटिफायर का उपयोग करता है। वास्तव में आप कम से कम एक चरित्र पर विभाजित करना चाहते हैं; एक चरित्र वर्ग और प्लस क्वांटिफायर के साथ ओपी का समाधान बेहतर है, पढ़ने के लिए बहुत स्पष्ट नहीं है। – kquinn

+0

मैं देखता हूं। मुझे नहीं लगता कि नियमित अभिव्यक्ति को पठनीयता पर रैंक किया जा सकता है, लेकिन मुझे कम से कम एक चरित्र से मेल खाने के बारे में आपकी बात मिलती है। – tgray

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