python - Regex in Django template tag matches only once -
मेरे पास एक टेम्पलेट टैग है:
@ register.filter (name = ' Bknz ') def bknz (text): pattern = re.compile (r "(? पी & lt; start & gt;। *) \ (Bkz: (? पी & lt; bkz & gt;। *) \) (? पी & lt; end & gt;। *) ") लिंक = आर '\ जी एंड एलटी; प्रारंभ & gt; (बीकेज़: & lt; a href =" / baslik / \ g & lt; bkz & gt; "शीर्षक ="% \ g & lt; bkz & gt; खोज ट्विटर "& gt; \ g & lt; bkz & gt; & lt; / एक & gt;) \ छ & LT; अंत & gt; ' Text = pattern.sub (लिंक, पाठ) वापसी mark_safe (text)
यह (bkz: कुछ) लिंक करने के लिए बदलता है (bkz: कुछ)। यह ठीक काम करता है लेकिन केवल एक बार। जब मैंने अपने ऑब्जेक्ट में कुछ (बीकेज़: एसटीएच) डाल दिया यह केवल ऑब्जेक्ट में पिछले एक को परिवर्तित संस्करण के रूप में प्रदान करता है। मैं इसे उतना आवश्यक कैसे चला सकता हूं? धन्यवाद।
प्रारंभ और समापन समूहों को बाहर निकालें। उनको आवश्यक नहीं है;
गैर-लालची मिलान का उपयोग करें ए । > कोड> एक regex में एक समय में यथासंभव अधिक से मेल खाने का प्रयास करेगा।
पैटर्न = re.compile (r "\ (पैटर्न के भविष्य के उदाहरणों को रोकने से बचने के लिए
। *?
का उपयोग करें Bkz: (? पी & lt; bkz & gt;। *?) \) ")
Comments
Post a Comment