दिलचस्प पोस्ट
कोष्ठकों के बिना फ़ंक्शन को शामिल करना जावा के लिए एसएसएच पुस्तकालय वर्ग << रूबी के साथ स्वयं बनाम। विधि: क्या बेहतर है? जावास्क्रिप्ट में अंकगणितीय अभिव्यक्तियों का सुरक्षित मूल्यांकन वास्तव में माइक्रोसॉफ्ट विज़ुअल सी ++ के दो-चरण टेम्पलेट इंस्टाशन के साथ "टूटी हुई" क्या है? कन्वर्ट_मैंसेसेकपीपीपी के लिए एक गाइड अजगर: 3 सूचियों से 2 डी समोच्च प्लॉट: एक्स, वाई और आरओ? Json deserialization के दौरान अज्ञात enum मानों को मैं कैसे अनदेखा कर सकता हूँ? क्या मैं फ्लोटिंग प्वाइंट मुद्दे के लिए PHP php.ini परिशुद्धता समाधान पर भरोसा कर सकता हूं एएसपी.नेट में नियंत्रण पाने का बेहतर तरीका क्यों डबल है। MIN_VALUE ऋणात्मक नहीं है JQuery के साथ क्वेरी स्ट्रिंग पैरामीटर प्राप्त करें एक्लिप्स निर्यात किए गए रननबल जार छवियों को प्रदर्शित नहीं करते MySQL में लूप उदाहरण के लिए कास्ट या कन्वर्ट का उपयोग कब करें

पायथन रिगेक्स मिलान वाले यूनिकोड गुण

पर्ल और कुछ अन्य मौजूदा रिजक्स इंजन यूनिसेक्स गुणों का समर्थन करते हैं, जैसे कि श्रेणी, एक रीजेक्स में। पर्ल में उदाहरण के लिए आप किसी भी स्पेस विभाजक के लिए p{Zs} लोअर-केस पत्र या p{Zs} से मेल करने के लिए \p{Ll} का उपयोग कर सकते हैं। मुझे इसके लिए या तो 2.x और 3.x लाइनों के पायथन (उचित पछतावा के साथ) में समर्थन नहीं मिलता है। क्या किसी को भी इसी तरह के प्रभाव पाने की अच्छी रणनीति है? घरेलू समाधान का स्वागत है

Solutions Collecting From Web of "पायथन रिगेक्स मिलान वाले यूनिकोड गुण"

क्या आपने पोनीग्रुरुमा की कोशिश की, एक पायथन बाइंडिंग ओनगुरुमा रेगुलर एक्सप्रेशन इंजन में है? उस इंजन में आप केवल अर्मेनियाई वर्णों से मेल करने के लिए \p{Armenian} कह सकते हैं। \p{Ll} या \p{Zs} भी काम करते हैं

Regex मॉड्यूल (मानक re मॉड्यूल के लिए एक विकल्प) \p{} वाक्यविन्यास के साथ यूनिकोड कोडपॉप गुणों का समर्थन करता है

आप प्रत्येक वर्ण पर गहनता से यूनिकोडाटाटा का उपयोग कर सकते हैं:

 import unicodedata def strip_accents(x): return u''.join(c for c in unicodedata.normalize('NFD', x) if unicodedata.category(c) != 'Mn') 

घर के उभरते समाधानों की बात करते हुए, कुछ समय पहले मैंने ऐसा करने के लिए एक छोटा सा प्रोग्राम लिखा था – यूनिकोड श्रेणी से लिखे गए एक यूनिकोड श्रेणी को \p{...} रूप में लिखे गए मानों में, यूनिकोड विनिर्देश (v.5.0.0) से निकाले गए। केवल श्रेणियां समर्थित हैं (उदा .: L , Zs ), और बीएमपी तक ही सीमित है। मैं इसे यहां पोस्ट कर रहा हूं अगर किसी को यह उपयोगी लगता है (हालांकि ओनिगुरुमा वास्तव में एक बेहतर विकल्प लगता है)।

उदाहरण उपयोग:

 >>> from unicode_hack import regex >>> pattern = regex(r'^\\p{Lu}(\\p{L}|\\p{N}|_)*') >>> print pattern.match(u'疂_1+2').group(0) 疂_1 >>> 

यहाँ स्रोत है समान डेटा का उपयोग करते हुए एक जावास्क्रिप्ट वर्जन भी है।

आप सही हैं कि युनिकोड संपत्ति वर्गों को पायथन रिगेक्स पार्सर द्वारा समर्थित नहीं किया गया है।

यदि आप एक अच्छा हैक करना चाहते हैं, तो यह आम तौर पर उपयोगी होगा, आप एक प्रीप्रोसेसर बना सकते हैं जो ऐसी क्लासिक टोकन ( \p{M} या जो भी) के लिए एक स्ट्रिंग स्कैन करता है और उन्हें संबंधित वर्ण सेटों के साथ बदल देता है, ताकि, उदाहरण के लिए, \p{M} [\u0300–\u036F\u1DC0–\u1DFF\u20D0–\u20FF\uFE20–\uFE2F] बन जाएगा, और \P{M} [^\u0300–\u036F\u1DC0–\u1DFF\u20D0–\u20FF\uFE20–\uFE2F]

लोग आपको धन्यवाद देंगे 🙂

ध्यान दें कि जबकि \p{Ll} का पायथन नियमित अभिव्यक्ति में कोई समकक्ष नहीं है, \p{Zs} '(?u)\s' द्वारा कवर किया जाना चाहिए। डॉक्स के रूप में, (?u) , "बनाओ \ w, \ डब्ल्यू, \ बी, \ बी, \ d, \ डी, \ s और \ \ यूनिकोड वर्ण गुणों के डेटाबेस पर निर्भर है।" और \s मतलब किसी भी स्पेसिंग वर्ण