regex - python re sub vs findall -
मेरा कोड:
आयात urlib आयात पुनः xml = urllib.urlopen ('url' ) .read () मुझे XML टैग से कुछ टैग और उनकी सामग्री को हटाने में दिलचस्पी है, इसलिए, मैं नियमित अभिव्यक्तियों का उपयोग करने की कोशिश करता हूं।
उदाहरण के लिए: < / P>
पुनः.फंडॉल (आर 'और एलटी। अंजीर (। *?) & Lt; / fig & gt;', xml, re.DOTALL) मेल और खाली नहीं है।
हालांकि,
re.sub (r '& lt; अंजीर (। *?) & Lt; / fig & gt;', '', xml, पुनः। DOTALL) कुछ नहीं करता है, XML स्ट्रिंग अपरिवर्तित है। मैं क्यों भ्रमित हूँ, कृपया मदद करें।
का चौथा पैरामीटर नहीं है flags < / कोड>, लेकिन एक की गणना । का मूल्य 16 है (कम से कम पायथन 2.7 / 3.4 में) तो re.sub (.., re.DOTALL) केवल 16 बार बदल देगा।
एक कीवर्ड तर्क के रूप में flags निर्दिष्ट करना आपकी समस्या का समाधान करेगा :
re.sub (r '& lt; अंजीर (। *?) & Lt; / fig & gt;', ', xml, flags = re.DOTALL) उस के अतिरिक्त, re.sub एक प्रतिस्थापन स्ट्रिंग लौटाता है, तीसरे तर्क को जगह में नहीं बदलता है सुनिश्चित करें कि आपने फ़ंक्शन के रिटर्न मान को वापस सौंपा है।
Comments
Post a Comment