समारोह अजगर के बिना अलग स्ट्रिंग चरित्र [डुप्लिकेट]

Dec 02 2020

क्या आप इस "+ 2x-5y + 8 + 2y" को अलग कर सकते हैं (वर्णों के बीच कोई रिक्त स्थान नहीं है) जैसे कि अजगर में [+ 2x, -5y, + 8, + 2y]? कैसे?

जवाब

schetefan24 Dec 02 2020 at 22:34

यदि आप सभी के लिए इनपुट के पैटर्न को जानते हैं, जो नियमित रूप से सामने आ सकता है, तो नियमित अभिव्यक्तियों पर एक नज़र डालें

आपके मामले में, एक समाधान कुछ ऐसा हो सकता है

import re
a = "+2x-5y+8+2y"
print(re.findall(r"[+-]\d[xy]?", a))

re.findall(expression, input)एक नियमित अभिव्यक्ति और एक तर्क की आवश्यकता होती है जिसे पार्स किया जाएगा उपरोक्त समाधान में, पैटर्न [+-]\d[xy]?शामिल हैं

  • [+-] या तो + या - प्रतीक
  • \dकोई भी अंक, यदि आप \d+इसके बजाय कई अंकों का उपयोग करने की उम्मीद करते हैं (+ यहाँ अर्थ "कम से कम एक पुनरावृत्ति")
  • [xy]?वर्णों में से एक x और y, लेकिन यह गायब हो सकता है। यदि आप अन्य पत्रों की भी अपेक्षा रखते हैं, तो उन्हें इन कोष्ठकों के अंदर जोड़ें