/ / rexxp के साथ भागों में विभाजित utf8 तार - अजगर, रेगेक्स, utf-8

regexp के साथ भागों में विभाजित utf8 तार - अजगर, रेगेक्स, utf-8

मुझे टेक्स्ट स्ट्रिंग्स में खोजने की आवश्यकता है, जो कि इसके साथ शुरू होती है =? और साथ समाप्त होता है ?= और उनका अनुवाद करें। मैं इस तरह की अभिव्यक्ति के साथ समाप्त हुआ:

re.sub("=?[w?-/=+:;_,[]()<>]+?=", decode_match, string)

यह 95% मामलों में काम करता है, लेकिन यह समान तार के साथ विफल होता है:

=?utf-8asdfaDDS23=eFF?=-=?utf-8?eadf-,=?=

क्या कोई मदद करने की कोशिश कर सकता है?

उत्तर:

जवाब के लिए 0 № 1

आपको उस मामले की आवश्यकता है जहां आपके पास है? आपके पैटर्न में? = के मिलान के बिना

"=?(?:[^?]|?[^=])+?="

जवाब के लिए 0 № 2

कर देता है str.split("=?") चाल चलो?


जवाब के लिए 0 № 3

तुम क्यों नहीं लिखते हो?

re.sub("=?.+??=", decode_match, string)

यह रेगेक्स "=? Utf-8asdfaDDS23 = eFF? = - =? Utf-8? Eadf -, =? =" में दो बार मेल खाएगा।

"=?utf-8asdfaDDS23=eFF?="

"=?utf-8?eadf-,=?="

यह वही है जो आप चाहते हैं? असफलता का सबूत देते समय, आपको इसे अधिक सटीकता के साथ देना चाहिए।