[a-zA-Z0-9!$* \t\r\n]मौजूदा वर्णों के साथ हाइफ़न के मिलान के पैटर्न को कैसे फिर से लिखना है ?
[a-zA-Z0-9!$* \t\r\n]मौजूदा वर्णों के साथ हाइफ़न के मिलान के पैटर्न को कैसे फिर से लिखना है ?
जवाबों:
हाइफ़न बच।
[a-zA-Z0-9!$* \t\r\n\-]
अद्यतन करें :
कभी भी इस उत्तर पर ध्यान न दें - आप हाइफ़न को समूह में जोड़ सकते हैं लेकिन आपको इससे बचना नहीं है। इसके बजाय कोनराड रूडोल्फ का जवाब देखें जो जवाब देने और समझाने का बेहतर काम करता है।
नियमित अभिव्यक्तियों में आमतौर पर हाइफ़न एक सामान्य चरित्र है। केवल अगर यह एक चरित्र वर्ग में है और दो अन्य पात्रों के बीच यह एक विशेष अर्थ लेता है।
इस प्रकार:
[-] एक हाइफ़न से मेल खाता है।[abc-]मैचों a, b, cया कोई हाइफ़न।[-abc]मैचों a, b, cया कोई हाइफ़न।[ab-d]मैच a, या b, ( केवल यहाँ हाइफ़न एक वर्ण श्रेणी को दर्शाता है)।cd[a-c-e]: यह कुछ रेगेक्स विनिर्देशों / इंजनों में बस अमान्य है। उदाहरण के लिए POSIX regex इसे नापसंद करता है।
यह हमेशा एक बची हुई हाइफ़न का उपयोग करने के लिए कम भ्रामक है, ताकि इसे स्थिति पर निर्भर न होना पड़े। यह एक है\- ब्रैकेटेड वर्ण वर्ग के अंदर है।
लेकिन विचार करने के लिए कुछ और है। उन प्रगणित वर्णों में से कुछ को संभवतः अलग तरह से लिखा जाना चाहिए। कुछ परिस्थितियों में, उन्हें निश्चित रूप से करना चाहिए।
रेगेक्स फ्लेवर की यह तुलना कहती है कि C of कुछ सरल यूनिकोड गुणों का उपयोग कर सकता है। यदि आप यूनिकोड के साथ काम कर रहे हैं, तो आपको संभवतः \p{L}सभी संभावित पत्रों के लिए सामान्य श्रेणी का उपयोग करना चाहिए , और शायद \p{Nd} दशमलव संख्याओं के लिए। इसके अलावा, यदि आप सभी डैश विराम चिह्न को समायोजित करना चाहते हैं, न कि केवल HYPHEN-MINUS, तो आपको \p{Pd}संपत्ति का उपयोग करना चाहिए । आप यह भी कह सकते हैं कि व्हॉट्सएप के पात्रों का वह क्रम बस के रूप में लिखना \s, यह मानते हुए कि आपके लिए बहुत सामान्य नहीं है।
सभी एक साथ, [\p{L}\p{Nd}\p{Pd}!$*]उस सेट से किसी एक वर्ण से मेल खाने के लिए काम करने के लिए क्षमा याचना करते हैं।
मैं वैसे भी इसका उपयोग करने की संभावना रखता हूं, भले ही मैंने पूर्ण यूनिकोड सेट से निपटने की योजना नहीं बनाई हो, क्योंकि यह एक अच्छी आदत है, और क्योंकि ये चीजें अक्सर अपने मूल मापदंडों से परे बढ़ती हैं। अब जब आप इसे अन्य कोड में उपयोग करने के लिए उठाते हैं, तब भी यह सही तरीके से काम करेगा। यदि आप सभी वर्णों को हार्ड कोड करते हैं, तो यह नहीं होगा।
[-a-z0-9] +, [a-z0-9 -] +, [az-०- ९] + और भी [az-०-९] + सभी एक ही हैं। दो श्रेणियों के बीच हाइफ़न एक के रूप में माना जाता है प्रतीक। और यह भी [a-z0-9 - + ()] + यह रेगेक्स हाइफ़न की अनुमति देता है।
किसी भी प्रकार की हाइफ़न से मेल खाने के लिए बिना उद्धरण के "\ p {Pd}" का उपयोग करें। '-' वर्ण सिर्फ एक प्रकार का हाइफ़न है जो रेगेक्स में एक विशेष चरित्र भी होता है।