⊗pyPmRELAB 72 of 129 menu

पायथन रेगुलर एक्सप्रेशन में पॉजिटिव और नेगेटिव लुकअहेड

कभी-कभी इस प्रकार की समस्या को हल करने की आवश्यकता होती है: स्ट्रिंग 'aaa' को ढूंढें और इसे '!' से बदलें, लेकिन केवल तभी जब 'aaa' के बाद 'x' हो, और स्वयं 'x' को न बदलें। यदि हम समस्या को 'सीधे तरीके से' हल करने का प्रयास करते हैं, तो हम सफल नहीं होंगे:

txt = 'aaax baaa' res = re.sub('aaax', '!', txt) print(res) # '! baaa' आउटपुट करेगा, जबकि हम '!x baaa' चाहते थे

लुकअहेड

कार्य को हल करने के लिए, यह कहने का एक तरीका चाहिए कि 'x' को प्रतिस्थापित नहीं किया जाना चाहिए। यह विशेष ब्रैकेट (?= ) की सहायता से किया जाता है, जो केवल देखते हैं, लेकिन उसे अपने साथ नहीं ले जाते।

इन ब्रैकेट को पॉजिटिव लुकअहेड कहा जाता है। पॉजिटिव - क्योंकि 'x' (हमारे मामले में) होना चाहिए - केवल तभी प्रतिस्थापन होगा।

आइए हमारे कार्य को हल करने के लिए इन ब्रैकेट्स को लागू करें:

txt = 'aaax baaa' res = re.sub('aaa(?=x)', '!', txt) print(res) # '!x aaab आउटपुट करेगा

नेगेटिव लुकअहेड भी होता है - (?! ) - यह, इसके विपरीत, कहता है कि कुछ नहीं होना चाहिए। निम्नलिखित उदाहरण में, प्रतिस्थापन तभी होगा जब 'aaa' के बाद 'x' न हो:

txt = 'aaax aaab' res = re.sub('aaa(?!x)', '!', txt) print(res) # 'aaax !b' आउटपुट करेगा

लुकबिहाइंड

इसी तरह पॉजिटिव लुकबिहाइंड होता है - (?<= )। निम्नलिखित उदाहरण में प्रतिस्थापन तभी होगा, जब 'aaa' के पहले 'x' हो:

txt = 'xaaa' res = re.sub('(?<=x)aaa', '!', txt) print(res) # 'x!' आउटपुट करेगा

और नेगेटिव लुकबिहाइंड भी होता है - (?<! )। निम्नलिखित उदाहरण में प्रतिस्थापन तभी होगा, जब 'aaa' के पहले 'x' न हो:

txt = 'baaa' res = re.sub('(?<!x)aaa', '!', txt) print(res) # 'b!' आउटपुट करेगा

व्यावहारिक समस्याएं

एक स्ट्रिंग दी गई है, जिसमें फ़ंक्शन नाम शामिल हैं:

txt = 'func1() func2() func3()'

स्ट्रिंग से फ़ंक्शन नामों की एक सरणी प्राप्त करें।

एक टैग के साथ एक स्ट्रिंग दी गई है:

txt = '<a href="" class="eee" id="zzz">'

इस टैग की विशेषताओं के नामों की एक सरणी प्राप्त करें।

चर के साथ एक स्ट्रिंग दी गई है:

txt = '$aaa $bbb $ccc xxxx'

उप-स्ट्रिंग प्राप्त करें, जिनके पहले डॉलर चिह्न हो।

हिन्दी
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें