दिलचस्प पोस्ट
UIAlertController में UIAlertAction को छवि जोड़ें विज़ुअल स्टूडियो (2008) 'क्लीन सॉल्यूशन' विकल्प स्टैकलेस भाषा कैसे काम करती है? मेरी सूची आइटम बुलेट फ़्लोटिंग तत्वों को ओवरलैप क्यों करते हैं सर्वश्रेष्ठ सी ++ आईडीई या विंडोज के लिए संपादक MIN / MAX बनाम ऑर्डर बाय और LIMIT PHP में स्ट्रिंग के रूप में दिए गए फार्मूला का मूल्यांकन कैसे करें? जावा में स्थानीय एप्लिकेशन डेटा फ़ोल्डर कैसे प्राप्त करें? एंजरीजेएस एचटीएमएल में टिप्पणी छोड़ देता है: क्या उन्हें निकालना संभव है? एकीकरण और इकाई परीक्षणों के बीच अंतर क्या है? किसी दिए गए यूआरएल के लिए फेसबुक की पसंद / शेयर गिनती UIPageViewController से एक दृश्य नियंत्रक को निकालना फास्ट प्रदर्शन और धागा सुरक्षित अवलोकन संग्रह आर में एक अन्य समारोह के भीतर ggplot () का उपयोग करें Android में TextWatcher वर्ग का उपयोग कैसे करें?

पायथन में रीगेक्स स्ट्रिंग से बचें

मैं कुछ पाठ पर किसी खोज के लिए उपयोगकर्ता से इनपुट का प्रयोग करना चाहता हूं I regex pattern यह काम करता है, लेकिन मैं उन मामलों को कैसे नियंत्रित कर सकता हूं जहां उपयोगकर्ता अक्षर लिखते हैं जिसका मतलब अर्थ है regex? उदाहरण के लिए, उपयोगकर्ता शब्द (s) लिए खोज करना चाहता है: regex इंजन एक समूह के रूप में ले जाएगा (s) मैं इसे एक स्ट्रिंग "(s)" तरह व्यवहार करना चाहता हूं मैं उपयोगकर्ता इनपुट पर replace कर सकता हूं और ( साथ में \( और ) साथ \) की जगह ले सकता हूं, लेकिन समस्या यह है कि मुझे प्रत्येक संभव regex प्रतीक के लिए प्रतिस्थापित करना होगा क्या आपको कुछ बेहतर तरीके से पता है?

वेब के समाधान से एकत्रित समाधान "पायथन में रीगेक्स स्ट्रिंग से बचें"

इसके लिए re.escape() फ़ंक्शन का प्रयोग करें:

4.2.3 re मॉड्यूल सामग्री

भागने (स्ट्रिंग)

सभी गैर-अल्फ़ान्यूमेरिक बैकस्लैश किए गए स्ट्रिंग लौटें; यह उपयोगी है यदि आप एक मनमाना की शाब्दिक स्ट्रिंग से मिलान करना चाहते हैं जिसमें उसमें नियमित अभिव्यक्ति मेटाचैक्टर्स हो सकते हैं।

एक सरलीकृत उदाहरण, प्रदान की गई स्ट्रिंग के किसी भी समय की खोज करें, उसके बाद 's' का पालन करें, और मैच वस्तु वापस लौटाएं।

 def simplistic_plural(word, text): word_or_plural = re.escape(word) + 's?' return re.match(word_or_plural, text) 

आप re.escape () का उपयोग कर सकते हैं:

re.escape (स्ट्रिंग) लौटें स्ट्रिंग सभी गैर-अल्फ़ान्यूमेरिक बैकस्लैश किए गए; यह उपयोगी है यदि आप एक मनमाना की शाब्दिक स्ट्रिंग से मिलान करना चाहते हैं जिसमें उसमें नियमित अभिव्यक्ति मेटाचैक्टर्स हो सकते हैं।

 >>> import re >>> re.escape('^a.*$') '\\^a\\.\\*\\$' 

दुर्भाग्य से, re.escape() प्रतिस्थापन स्ट्रिंग के लिए उपयुक्त नहीं है:

 >>> re.sub('a', re.escape('_'), 'aa') '\\_\\_' 

एक हल एक लैम्ब्डा में बदलने के लिए है:

 >>> re.sub('a', lambda _: '_', 'aa') '__' 

क्योंकि लैम्ब्डा का रिटर्न वैल्यू एक शाब्दिक स्ट्रिंग के रूप में re.sub() द्वारा किया जाता है।

कृपया एक प्रयास करें:

\ क्यू और \ ई एन्कर्स के रूप में

या तो एक पूर्ण शब्द या regex मैच के लिए एक या स्थिति रखो।

रेफ कड़ी: पूरे शब्द से मिलान कैसे करें जिसमें regex में विशेष वर्ण शामिल हैं