मुझे सभी तारों को ढूंढना है जो केवल अक्षरों 'ए' और 'बी' से बने होते हैं और 'ए' के प्रत्येक उदाहरण को तुरंत 'बी' के बाद और तुरंत 'बी' के बाद किया जाता है। ।regex में वर्णों के साथ 'लुकराउंड' का उपयोग करते समय संपूर्ण स्ट्रिंग को कैप्चर कैसे करें?
उदाहरण के लिए:
mystring = 'bab babab babbab ab baba aba xyz'
तब मेरे regex लौटना चाहिए:
['bab' 'babab' 'babbab']
(स्ट्रिंग 'अब' में - 'एक' से 'बी' के पहले नहीं कर रहा है इसी तरह 'ए.बी.ए.' के लिए और 'xyz' केवल 'एक', 'बी' से बना नहीं है)
मैं इसके लिए अग्रदर्शी का इस्तेमाल किया और इस regex लिखा है:।
re.findall(r'((?<=b)a(?=b))',mystring)
लेकिन यह केवल मुझे जो पीछा कर रहे हैं 'एक'/की तरह 'बी' से पहले की सभी आवृत्तियों रिटर्न:
['a','a','a','a']
लेकिन मैं पूरे शब्द की जरूरत है। रेगेक्स का उपयोग करके मैं पूरे शब्द कैसे ढूंढ सकता हूं? मैंने विभिन्न विकल्पों के साथ अपने regex को संशोधित करने की कोशिश की, लेकिन कुछ भी काम नहीं लगता है। यह कैसे किया जा सकता है?
बहुत धन्यवाद, यह काम करता है। मुझे लगता है कि मुझे परिमित राज्य मशीनों की मेरी समझ में सुधार करना होगा –