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

रेगुलर एक्सप्रेशन बनाने के लिए, आपको खास सिंटैक्स का इस्तेमाल करना होगा. जैसे, खास वर्ण और बनाने के नियम. उदाहरण के लिए, यहां एक सामान्य रेगुलर एक्सप्रेशन दिया गया है. यह 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]

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

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

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

a-z या A-Z

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

0-9

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

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

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

ध्यान दें: रेगुलर एक्सप्रेशन में इस वर्ण वर्ग का इस्तेमाल करते समय, इसे स्क्वेयर ब्रैकेट के दूसरे सेट में रखना ज़रूरी है. उदाहरण के लिए: [[: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 बार मैच कर सकता है. यह {0,1} रेंज के बराबर है. उदाहरण के लिए, यह रेगुलर एक्सप्रेशन:

colou?r

, colour या color से मेल खाता है, क्योंकि ? से u अक्षर को वैकल्पिक बनाया जाता है.