रेगुलर एक्सप्रेशन का सिंटैक्स

रेगुलर एक्सप्रेशन बनाने के लिए, आपको खास सिंटैक्स का इस्तेमाल करना होगा. जैसे, खास वर्ण और बनाने के नियम. उदाहरण के लिए, यहां एक आसान रेगुलर एक्सप्रेशन दिया गया है. यह nnn-nnn-nnnn पैटर्न में, 10 अंकों के किसी भी फ़ोन नंबर से मैच करता है:

\d{3}-\d{3}-\d{4}

नीचे दी गई टेबल में, रेगुलर एक्सप्रेशन में इस्तेमाल किए जाने वाले कुछ सबसे सामान्य खास वर्णों के बारे में बताया गया है. इन वर्णों को इन कैटगरी में बांटा गया है:

वर्ण ब्यौरा
ऐंकर
^ (कैरेट) रेगुलर एक्सप्रेशन जिस लाइन या टेक्स्ट स्ट्रिंग को खोज रहा है उसके शुरू से मैच करता है. उदाहरण के लिए, किसी जगह के विषय वाली लाइन और इस रेगुलर एक्सप्रेशन के साथ, कॉन्टेंट के लिए कोई नियम:

^abc

**abc** अक्षरों से शुरू होने वाली विषय वाली लाइन वाले किसी भी ईमेल मैसेज को कैप्चर करता है
$ (डॉलर) रेगुलर एक्सप्रेशन जिस लाइन या टेक्स्ट स्ट्रिंग को खोज रहा है उसके आखिर से मैच करता है. उदाहरण के लिए, किसी जगह के विषय वाली लाइन और इस रेगुलर एक्सप्रेशन के साथ, कॉन्टेंट के लिए कोई नियम:

xyz$

**xyz** अक्षरों पर खत्म होने वाली विषय वाली लाइन वाले किसी भी ईमेल मैसेज को कैप्चर करता है
मेटाकैरेक्टर
. (डॉट) नई लाइन को छोड़कर, किसी भी एक वर्ण से मैच करता है.
| (पाइप) अल्टरनेशन को दिखाता है. इसका मतलब है, "या". उदाहरण के लिए:

cat|dog, cat या dog शब्द से मैच करता है
\ इससे पता चलता है कि अगला वर्ण, खास वर्ण के बजाय लिटरल है. उदाहरण के लिए:

\. किसी भी वर्ण (डॉट वर्ण) के बजाय, लिटरल अवधि से मैच करता है
वर्ण क्लास
[...] वर्णों के सेट में से किसी भी वर्ण से मैच करता है. सेट में पहले और आखिरी वर्ण को डैश से अलग करें. उदाहरण के लिए:

[123], 1, 2 या 3 अंक से मैच करता है

[a-f], a से f तक के किसी भी अक्षर से मैच करता है

ध्यान दें: कॉन्टेंट के लिए, नियमों के पालन से जुड़ी नीतियों में रेगुलर एक्सप्रेशन, केस-सेंसिटिव होते हैं.
[^...] वर्णों के सेट में शामिल न होने वाले किसी भी वर्ण से मैच करता है. उदाहरण के लिए:

[^a-f], a से f तक के किसी भी अक्षर के अलावा, किसी भी वर्ण से मैच करता है

ध्यान दें: कॉन्टेंट के लिए, नियमों के पालन से जुड़ी नीतियों में रेगुलर एक्सप्रेशन, केस-सेंसिटिव होते हैं.
[:alnum:] अल्फ़ान्यूमेरिक वर्णों (अक्षरों या अंकों) से मैच करता है:

a-z, A-Z या 0-9

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:alnum:]].
[:alpha:] अल्फ़ाबेटिक वर्णों (अक्षरों) से मैच करता है:

a-z या A-Z

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:alpha:]].
[:digit:] अंकों से मैच करता है:

0-9

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:digit:]].
[:graph:] सिर्फ़ दिखने वाले वर्णों से मैच करता है. जैसे, स्पेस, कंट्रोल वर्ण वगैरह को छोड़कर कोई भी वर्ण.

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:graph:]].
[:punct:] विराम चिह्नों और सिंबल से मैच करता है:

! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:punct:]].
[:print:] दिखने वाले वर्णों और स्पेस से मैच करता है.

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:print:]].
[:space:] सभी व्हाइटस्पेस वर्णों से मैच करता है. इनमें स्पेस, टैब, और लाइन ब्रेक शामिल हैं.

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:space:]].
[:word:] किसी भी शब्द के वर्ण से मैच करता है. जैसे, कोई भी अक्षर, अंक या अंडरस्कोर:

a-z, A-Z, 0-9 या _

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण क्लास का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[:word:]].
शॉर्टहैंड वर्ण क्लास
\w किसी भी शब्द के वर्ण से मैच करता है. जैसे, कोई भी अक्षर, अंक या अंडरस्कोर:

a-z, A-Z, 0-9 या _

[:word:] के बराबर
\W किसी भी ऐसे वर्ण से मैच करता है जो शब्द का वर्ण नहीं है. जैसे, कोई भी ऐसा वर्ण जो अक्षर, अंक या अंडरस्कोर नहीं है.

[^[:word:]] के बराबर
\s किसी भी व्हाइटस्पेस वर्ण से मैच करता है. उदाहरण के लिए, किसी वाक्यांश में शब्दों के बीच स्पेस तय करने के लिए, इस वर्ण का इस्तेमाल करें:

stockstips, stock tips वाक्यांश से मैच करता है

[:space:] के बराबर
\S किसी भी ऐसे वर्ण से मैच करता है जो व्हाइटस्पेस नहीं है.

[^[:space:]] के बराबर
\d 0 से 9 तक के किसी भी अंक से मैच करता है.

[:digit:] के बराबर
\D 0 से 9 तक के किसी भी ऐसे वर्ण से मैच करता है जो अंक नहीं है.

[^[:digit:]] के बराबर
ग्रुप
(...) किसी एक्सप्रेशन के हिस्सों को ग्रुप करता है. किसी ग्रुप पर क्वॉन्टिफ़ायर लागू करने या किसी ग्रुप से पहले या बाद में वर्ण क्लास से मैच करने के लिए, ग्रुपिंग का इस्तेमाल करें.
क्वॉन्टिफ़ायर
{n} पिछले एक्सप्रेशन से ठीक n बार मैच करें. उदाहरण के लिए:

[a-c]{2}, a से c तक के किसी भी अक्षर से मैच करता है. हालांकि, ऐसा तब होता है, जब दो अक्षर एक के बाद एक आते हैं. इसलिए, यह एक्सप्रेशन ab और bc से मैच करेगा, लेकिन abc या aabbc से नहीं.
{n,m} पिछले एक्सप्रेशन से कम से कम n बार और ज़्यादा से ज़्यादा m बार मैच करें. उदाहरण के लिए:

[a-c]{2,4}, a से c तक के किसी भी अक्षर से मैच करता है. हालांकि, ऐसा तब होता है, जब अक्षर एक के बाद एक कम से कम दो बार और ज़्यादा से ज़्यादा चार बार आते हैं. इसलिए, यह एक्सप्रेशन ab और abc से मैच करेगा, लेकिन aabbc से नहीं.
? इससे पता चलता है कि पिछला वर्ण या एक्सप्रेशन, शून्य या एक बार मैच कर सकता है. यह {0,1} रेंज के बराबर है. उदाहरण के लिए, यह रेगुलर एक्सप्रेशन:

colou?r

**colour** या **color** से मैच करता है, क्योंकि **?**
से u अक्षर को ज़रूरी विकल्प के तौर पर सेट किया जाता है.