मैं पायथन रेगेक्स का उपयोग कर एक छोटी सी समस्या में भाग गया।वैकल्पिक ऑपरेटर के साथ एकाधिक regex पैटर्न मिलान?
मान लीजिए इस इनपुट है:
(zyx)bc
क्या मैं, प्राप्त करने के लिए प्राप्त कर रहा है जो कुछ भी एक भी मैच के रूप में कोष्ठकों के बीच है कोशिश कर रहा हूँ और एक व्यक्ति के रूप में मैच से बाहर किसी भी वर्ण। वांछित परिणाम लाइनों के साथ होगा:
['zyx','b','c']
मैचों का क्रम रखा जाना चाहिए।
मैंने इसे पायथन 3.3 के साथ प्राप्त करने का प्रयास किया है, लेकिन सही रेगेक्स को समझने के लिए प्रतीत नहीं होता है। अब तक मेरे पास है:
matches = findall(r'\((.*?)\)|\w', '(zyx)bc')
print(matches)
पैदावार निम्नलिखित:
['zyx','','']
कोई भी विचार मैं गलत क्या कर रहा हूँ?
क्यों न सिर्फ 'xyz | एक | b'? – fge
यह सिर्फ एक नमूना इनपुट था। रेगेक्स विभिन्न मामलों के बीच अंतर करने में सक्षम होना चाहिए, उदाहरण के लिए (एबी) (बीसी) (सीए), एबीसी, (एबीसी) (एबीसी) (एबीसी), या (जेईएक्स) बीसी, आदि हो, जबकि यह पहचानें कि कौन से वर्ण भीतर हैं कोष्ठक और जो नहीं हैं। –