2012-05-01 3 views
11

में एकाधिक डिलीमीटर के साथ एक स्ट्रिंग को विभाजित करना मैं कई डिलीमीटरों का उपयोग करके एक स्ट्रिंग को विभाजित करने के लिए नियमित अभिव्यक्तियों का उपयोग कर रहा हूं। लेकिन यदि मेरे दो डिलीमीटर स्ट्रिंग में एक दूसरे के बगल में होते हैं, तो यह परिणामस्वरूप सूची में एक खाली स्ट्रिंग डालता है।पायथन

['This', 'is', 'a', '', 'string'] 

में

re.split(',|;', "This,is;a,;string") 

परिणाम वहाँ किसी भी तरह से परिसीमक के रूप में ,; जोड़े बिना मेरी सूची में '' हो रही से बचने के लिए है: उदाहरण के लिए?

उत्तर

30

इस प्रयास करें:

import re 
re.split(r'[,;]+', 'This,is;a,;string') 
> ['This', 'is', 'a', 'string'] 
+0

हम्म, ठीक है। अब क्या होगा यदि मेरे डीलिमीटर में से एक शब्द भी था? उदाहरण के लिए: 're.split (', |; | string'," यह, है; ए,; स्ट्रिंग ")' –

+2

फिर यह काम करेगा: 're.split (r '[,;] + | string', 'यह, है; ए,; स्ट्रिंग') ' –

+1

अब आउटपुट '[' यह ',' है ',' ए ',' ',' ']' –