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

Popular posts from this blog

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -