regex - Python- Generic/Inbuilt function to Decode a string -
मैं एक स्ट्रिंग को डीकोड करना चाहता हूं
प्रारूप का पालन करें जैसा है अन्य नमूना इस तरह से हो सकते हैं ` यानी तो मूल रूप से मुझे एक जेनेरिक फ़ंक्शन बनाना है जो प्रारूप के लिए मेरे लिए स्ट्रिंग को डीकोड कर सकता है। तो, फ़ंक्शन मैं इसे कैसे कर सकता हूं? क्या कुछ ऐसा है जो कुछ इनबिल्ट फ़ंक्शन जैसे कि पायथन में? abc, 1236, hg898,111112222, XXXX < / कोड>
प्रारूप: पिनकोड, sid, xyz, डीएसपी, 4-अक्षर कोड।
abc1236hg898111112222XXXX
प्रारूप: पिनकोड = पहला 3 अक्षर, sid = पहले अगले 4 अक्षर, xyz = अगले 5 अक्षर, डीएसपी = अगले 9 अक्षर, 4-अक्षर कोड = अंतिम 4 अक्षर।
पिनकोड =% 3s sid =% 4s xyz =% 5s डीएसपी =% 9 एस 4-चार्चोड =% 4s
`
def string_decoder (स्ट्रिंग, प्रारूप) होना चाहिए:
आयात फिर से मैच = पुनः। मीच (r '' ' (। {3}),? (। {4}),? (। {5}),? (। {9}), (। {4}) '' ', स्ट्रिंग, झंडे = पुनः। यदि मैच: पिन, एसआईडी, एक्सवायज़, डीएसपी, चारचियरोड = match.groups () अन्य: handle_error ()
। {3}
अर्थ 3 मनमाना अक्षर ,?
एक वैकल्पिक अल्पविराम का मतलब है कैरेपरिंग समूह के रूप में 3 संकेतन वर्णों को । {3}
संयुक्त, यह regex 3, 4, 5, 9, और 4 अक्षरों के समूह में इनपुट स्ट्रिंग को तोड़ता है, वैकल्पिक रूप से उन दोनों के बीच अल्पविराम के साथ।
यदि आप समूहों की संख्या और आकार निर्दिष्ट करना चाहते हैं फ़ंक्शन पर तर्क, आप रनटाइम पर regex बना सकते हैं:
def break_groups (स्ट्रिंग, * आकार): regex = r ',?' शामिल हो (r '(। {% D} ) आकार में आकार के लिए '% आकार) मैच = पुनः मिलान (regex, स्ट्रिंग) यदि मैच: वापसी match.groups () अन्य: raise someSortOfError
Comments
Post a Comment