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