Regular Expressions
चरित्र वर्ग
खोज…
टिप्पणियों
साधारण वर्ग
regex | माचिस |
---|---|
[abc] | निम्न में से कोई भी वर्ण: a , b या c |
[az] | से कोई चरित्र a करने के लिए z , समावेशी (यह एक सीमा कहा जाता है) |
[0-9] | 0 से 9 तक कोई भी अंक, समावेशी |
सामान्य वर्ग
कुछ समूहों / वर्णों की श्रेणियों का अक्सर उपयोग किया जाता है, उनके पास विशेष संक्षिप्तियां हैं:
regex | माचिस |
---|---|
\w | अक्षर अक्षर के अलावा अंडरस्कोर ("शब्द वर्ण" के रूप में भी जाना जाता है) |
\W | गैर-शब्द वर्ण (वही [^\w] ) |
\d | अंक (की तुलना में व्यापक [0-9] के बाद से फारस की अंक, भारतीय लोगों आदि शामिल हैं) |
\D | गैर-अंक (फारसी अंकों, भारतीय लोगों आदि को अस्वीकार करने के बाद से [^0-9] से कम ) |
\s | व्हाट्सएप वर्ण (स्थान, टैब, आदि ...) नोट : आपके इंजन / संदर्भ के आधार पर भिन्न हो सकते हैं |
\S | गैर-व्हाट्सएप पात्र |
नकारात्मक वर्ग
एक चौकोर ब्रैकेट खोलने के बाद एक कैरेट (^) वर्णों के निषेध के रूप में काम करता है। यह उन सभी पात्रों से मेल खाएगा जो चरित्र वर्ग में नहीं हैं।
नेगेटिव कैरेक्टर क्लासेस भी लाइन ब्रेक कैरेक्टर्स से मेल खाते हैं, इसलिए यदि इनका मिलान नहीं किया जाता है, तो विशिष्ट लाइन ब्रेक कैरेक्टर्स को क्लास (\ r और / या \ n) में जोड़ा जाना चाहिए।
regex | माचिस |
---|---|
[^AB] | किसी भी चरित्र के अलावा अन्य A और B |
[^\d] | कोई भी चरित्र, अंकों को छोड़कर |
मूल बातें
मान लीजिए हमारे पास टीमों की एक सूची है, जिसका नाम इस प्रकार है: Team A
, Team B
, ..., Team Z
। फिर:
-
Team [AB]
: यह या तोTeam A
याTeam B
से मेल खाएगी -
Team [^AB]
: यहTeam A
याTeam B
को छोड़कर किसी भी टीम से मेल खाएगी
हम अक्सर वर्णों का मिलान करने की जरूरत है कि "संबंधित" एक साथ कुछ संदर्भ या किसी अन्य (से पत्र की तरह में A
के माध्यम से Z
), और यह है कि क्या चरित्र वर्गों के लिए कर रहे हैं।
अलग-अलग, समान शब्दों का मिलान करें
चरित्र वर्ग [aeiou]
पर विचार करें। इस वर्ण वर्ग का उपयोग एक समान अभिव्यक्ति वाले शब्दों के सेट से मेल खाने के लिए एक नियमित अभिव्यक्ति में किया जा सकता है।
b[aeiou]t
मैच:
- बल्ला
- शर्त
- बिट
- बॉट
- परंतु
यह मेल नहीं खाता:
- बार
- BTT
- bt
अपने स्वयं के मैच एक पर चरित्र कक्षाएं और एक समय में केवल एक चरित्र।
गैर-अल्फ़ान्यूमेरिक्स मिलान (नकारात्मक चरित्र वर्ग)
[^0-9a-zA-Z]
यह सभी वर्णों से मेल खाएगा जो न तो संख्या और न ही अक्षर (अल्फ़ान्यूमेरिकल वर्ण) हैं। यदि अंडरस्कोर वर्ण _
को भी नकारना है, तो अभिव्यक्ति को छोटा किया जा सकता है:
[^\w]
या:
\W
निम्नलिखित वाक्यों में:
हाय् क्या चल रहा है?
मैं 2017 का इंतज़ार नहीं कर सकता !!!
निम्नलिखित वर्ण मेल खाते हैं:
,
,,
'
,?
और लाइन चरित्र का अंत।
'
,,
!
और लाइन चरित्र का अंत।
अद्वितीय नोट
ध्यान दें कि कुछ फ्लेवर यूनिकोड के चरित्र गुणों के समर्थन के साथ \w
और \W
व्याख्या कर सकते हैं [\p{L}\p{N}_]
और [^\p{L}\p{N}_]
जिसका अर्थ है अन्य यूनिकोड अक्षर और संख्यात्मक वर्णों को भी शामिल किया जाएगा ( PCRE डॉक्स देखें)। यहाँ एक PCRE \w
परीक्षण है :
.NET में, \w
= [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Lm}\p{Mn}\p{Nd}\p{Pc}]
, और ध्यान दें कि यह PCRE के विपरीत \p{Nl}
और \p{No}
मेल नहीं खाता ( \w
.NET दस्तावेज़ देखें ):
ध्यान दें कि किसी कारण से, यूनिकोड 3.1 लोअरकेस अक्षर (जैसे 𝐚𝒇𝓌𝔨𝕨𝗐𝛌𝛚
) मेल नहीं खाते हैं।
Java's (?U)\w
PCRE और .NET में what \w
मेल से मेल खाएगा:
गैर-अंक मिलान (नकारात्मक चरित्र वर्ग)
[^0-9]
यह उन सभी वर्णों से मेल खाएगा जो ASCII अंक नहीं हैं।
यदि यूनिकोड अंकों को भी नकारा जाना है, तो आपके स्वाद / भाषा सेटिंग्स के आधार पर, निम्न अभिव्यक्ति का उपयोग किया जा सकता है:
[^\d]
इसे छोटा किया जा सकता है:
\D
आपको u
मॉडिफ़ायर का उपयोग करके u
मोड वर्ण गुणों को स्पष्ट रूप से सक्षम करने की आवश्यकता हो सकती है या कुछ भाषाओं में प्रोग्रामेटिक रूप से उपयोग कर सकते हैं, लेकिन यह गैर-स्पष्ट हो सकता है। इरादे को स्पष्ट रूप से व्यक्त करने के लिए, निम्नलिखित निर्माण का उपयोग किया जा सकता है (जब समर्थन उपलब्ध हो):
\P{N}
जिसका परिभाषा से मतलब है: कोई भी चरित्र जो किसी भी स्क्रिप्ट में एक संख्यात्मक चरित्र नहीं है। एक नकारात्मक चरित्र श्रेणी में, आप उपयोग कर सकते हैं:
[^\p{N}]
निम्नलिखित वाक्यों में:
हाय् क्या चल रहा है?
मैं 2017 का इंतज़ार नहीं कर सकता !!!
निम्नलिखित वर्णों का मिलान किया जाएगा:
,
,,
'
,?
पंक्ति वर्ण और सभी अक्षरों का अंत (लोअरकेस और अपरकेस)।
'
,,
!
पंक्ति वर्ण और सभी अक्षरों का अंत (लोअरकेस और अपरकेस)।
चरित्र वर्ग और सामान्य समस्याओं का सामना करना पड़ता है
1. चरित्र वर्ग
चरित्र वर्ग को []
द्वारा निरूपित किया जाता है। एक चरित्र वर्ग के अंदर की सामग्री को single character separately
रूप में single character separately
से माना जाता है। उदाहरण के लिए, हम उपयोग करते हैं
[12345]
ऊपर दिए गए उदाहरण में, इसका अर्थ है 1 or 2 or 3 or 4 or 5
का मिलान। सरल शब्दों में, इसे or condition for single characters
रूप में समझा जा सकता है ( एकल चरित्र पर तनाव )
१.१ सावधानी का वचन
- चरित्र वर्ग में, एक स्ट्रिंग के मिलान की कोई अवधारणा नहीं है। इसलिए, यदि आप उपयोग कर रहे हैं regex
[cat]
, इसका मतलब यह नहीं है कि यह शब्द से मेल खाना चाहिएcat
सचमुच लेकिन इसका मतलब है कि यह या तो मैच चाहिएc
याa
याt
। यह एक बहुत ही आम गलतफहमी है जो लोगों के बीच मौजूद है जो नए सिरे से नए हैं। - कभी-कभी लोग उपयोग करते हैं
|
(प्रत्यावर्तन) चरित्र वर्ग के भीतर सोच यह रूप में कार्य करेगाOR condition
गलत है। उदाहरण के लिए,[a|b]
का उपयोग करना वास्तव मेंa
मेल खाताa
|
(शब्दशः) याb
।
2. चरित्र वर्ग में सीमा
वर्ण वर्ग में श्रेणी का उपयोग -
संकेत पर किया जाता है। मान लीजिए कि हम अंग्रेजी वर्णमाला A
से Z
किसी भी वर्ण को ढूंढना चाहते हैं। यह निम्न वर्ण वर्ग का उपयोग करके किया जा सकता है
[A-Z]
यह किसी भी मान्य ASCII या यूनिकोड श्रेणी के लिए किया जा सकता है। आमतौर पर इस्तेमाल की जाने वाली श्रेणियों में [AZ]
, [az]
या [0-9]
। इसके अलावा इन श्रेणियों को वर्ण वर्ग में जोड़ा जा सकता है
[A-Za-z0-9]
इसका मतलब है कि A to Z
या a to z
या 0 to 9
किसी भी चरित्र से मेल खाते हैं। आदेश कुछ भी हो सकता है। तो ऊपर [a-zA-Z0-9]
बराबर है जब तक कि आपके द्वारा परिभाषित सीमा सही है।
२.१ सावधानी के वचन
कभी-कभी लिखते समय
A
सेZ
लोग इसे[Az]
लिखते हैं। क्योंकि हम प्रयोग कर रहे हैं यह ज्यादातर मामलों में गलत हैz
के बजायZ
। इसलिए यह ASCII रेंज65
(A) से122
(z) तक के किसी भी वर्ण से मेल खाता है, जिसमें ASCII श्रेणी90
(Z) के बाद कई अनपेक्षित वर्ण शामिल हैं। कैसे ,[Az]
POSIX- शैली regex में सभी[a-zA-Z]
अक्षरों से मेल खाने के लिए इस्तेमाल किया जा सकता है जब एक विशेष भाषा के लिए टकराव सेट किया जाता है।[[ "ABCEDEF[]_abcdef" =~ ([Az]+) ]] && echo "${BASH_REMATCH[1]}"
पर Cygwin परLC_COLLATE="en_US.UTF-8"
ABCEDF
। यदि आपLC_COLLATE
कोC
(Cygwin पर,export
साथ किया जाता है) पर सेटLC_COLLATE
, तो यह अपेक्षितABCEDEF[]_abcdef
देगा।अर्थ
-
अंदर का चरित्र वर्ग विशेष है। जैसा कि ऊपर बताया गया है, यह सीमा को दर्शाता है। क्या होगा यदि हम अक्षर-
अक्षर का मिलान करना चाहते हैं? हम इसे कहीं भी नहीं रख सकते हैं, अन्यथा यह दो वर्णों के बीच रखी गई श्रेणियों को निरूपित करेगा। उस मामले में हम डाल करने के लिए है-
जैसे चरित्र वर्ग के शुरू करने में[-AZ]
या जैसे चरित्र वर्ग के अंत में[AZ-]
याescape it
आप की तरह बीच में इसका इस्तेमाल करना चाहते हैं तो[AZ\-az]
।
3. नकारात्मक चरित्र वर्ग
नकारात्मक चरित्र वर्ग को [^..]
द्वारा निरूपित किया जाता है। कैरेट संकेत ^
चरित्र वर्ग में मौजूद एक को छोड़कर किसी भी वर्ण से मेल खाता है। जैसे
[^cat]
साधन को छोड़कर किसी भी चरित्र से मेल c
या a
या t
।
3.1 सावधानी के शब्द
- कैरट पर हस्ताक्षर के अर्थ
^
केवल में अगर अपने चरित्र वर्ग के शुरू करने से निषेध करने के लिए मैप करता है। यदि इसके चरित्र वर्ग में कहीं और इसे किसी विशेष अर्थ के बिना शाब्दिक कार्यवाहक चरित्र के रूप में माना जाता है। - कुछ लोग रेगेक्स लिखते हैं जैसे
[^]
। अधिकांश रेगेक्स इंजनों में, यह एक त्रुटि देता है। जब आप शुरुआत की स्थिति में^
का उपयोग कर रहे होते हैं, तो यह कम से कम एक चरित्र की अपेक्षा करता है जिसे नकार दिया जाना चाहिए। जावास्क्रिप्ट में , यह एक वैध निर्माण है जो कुछ भी मेल खाता है, लेकिन कुछ भी नहीं , अर्थात किसी भी संभावित प्रतीक (लेकिन dicritics, कम से कम ES5 में) से मेल खाता है।
POSIX चरित्र वर्ग
POSIX वर्ण कक्षाएं वर्णों के एक निश्चित समूह के लिए पूर्वनिर्धारित अनुक्रम हैं।
चरित्र वर्ग | विवरण |
---|---|
[:alpha:] | वर्णिक वर्ण |
[:alnum:] | अक्षर वर्ण और अंक |
[:digit:] | अंक |
[:xdigit:] | हेक्साडेसिमल अंक |
[:blank:] | अंतरिक्ष और टैब |
[:cntrl:] | पात्रों पर नियंत्रण रखें |
[:graph:] | दृश्यमान वर्ण (रिक्त स्थान और नियंत्रण वर्ण को छोड़कर) |
[:print:] | दृश्यमान वर्ण और स्थान |
[:lower:] | छोटे अक्षर |
[:upper:] | बड़ी वर्तनी के अक्षर |
[:punct:] | विराम चिह्न और प्रतीक |
[:space:] | लाइन टूटने सहित सभी व्हाट्सएप पात्र |
अतिरिक्त चरित्र कक्षाएं मेरे कार्यान्वयन और / या स्थान के आधार पर उपलब्ध हैं।
चरित्र वर्ग | विवरण |
---|---|
[:<:] | शब्द की शुरुआत |
[:>:] | शब्द का अंत |
[:ascii:] | ASCII वर्ण |
[:word:] | अक्षर, अंक और अंडरस्कोर। \w बराबर |
एक ब्रैकेट अनुक्रम (उर्फ चरित्र वर्ग) के अंदर का उपयोग करने के लिए, आपको वर्ग कोष्ठक भी शामिल करना चाहिए। उदाहरण:
[[:alpha:]]
यह एक वर्णमाला के चरित्र से मेल खाएगा।
[[:digit:]-]{2}
यह 2 वर्णों से मेल खाएगा, जो कि या तो अंक हैं या -
। निम्नलिखित मैच होगा:
-
--
-
11
-
-2
-
3-
अधिक जानकारी पर उपलब्ध है: Regular-expressions.info