Regex एक्सप्लेनर कैसे इस्तेमाल करें
- रेगुलर एक्सप्रेशन पेस्ट करें (/…/gi जैसा लिटरल भी चलेगा)।
- जो फ़्लैग आप इस्तेमाल करते हैं वे डालें, ताकि ऐंकर और डॉट की व्याख्या सही रहे।
- सारांश और टेबल पढ़ें; पूरी संरचना देखने के लिए पार्स ट्री खोलें।
Regex एक्सप्लेनर की खूबियाँ
- टोकन-दर-टोकन टेबल — हर एलिमेंट का टाइप और आसान भाषा में एक वाक्य
- ग्रुप, क्लास और क्वांटिफ़ाइड एलिमेंट का नेस्टेड व्यू
- नामित ग्रुप, lookahead/lookbehind, lazy क्वांटिफ़ायर, बैक-रेफ़रेंस और यूनिकोड प्रॉपर्टी समझता है
- ^, $ और डॉट के लिए फ़्लैग के अनुसार बदलती व्याख्या
- डॉक्यूमेंटेशन या टूलिंग के लिए JSON पार्स ट्री
- पैटर्न ग़लत होने पर एरर की सटीक जगह
Regex एक्सप्लेनर का उदाहरण
ISO तारीख़ पैटर्न की व्याख्या
इनपुट:
^(?<year>\d{4})-(?<month>0[1-9]|1[0-2])$आउटपुट:
^ → Asserts position at the start of the string.
(?<year>\d{4}) → Named capturing group "year" (#1)…
\d{4} → Matches a digit (0–9), exactly 4 times (greedy).
- → Matches a hyphen "-" literally.
(?<month>0[1-9]|1[0-2]) → Named capturing group "month" (#2)…
$ → Asserts position at the end of the string.Regex एक्सप्लेनर के बारे में अक्सर पूछे जाने वाले सवाल
एक्सप्लेनर क्या-क्या समझता है?
लिटरल, एस्केप (\d \w \s \b, \xhh, \uhhhh, \p{…}), कैरेक्टर क्लास और रेंज, सभी तरह के ग्रुप (कैप्चरिंग, नामित, नॉन-कैप्चरिंग, lookahead, lookbehind), greedy और lazy क्वांटिफ़ायर, अल्टरनेशन, ऐंकर तथा नंबर वाले या नामित बैक-रेफ़रेंस।
व्याख्या में multiline या dotAll का ज़िक्र क्यों आता है?
फ़्लैग ^, $ और डॉट का अर्थ बदल देते हैं। जो फ़्लैग आप इस्तेमाल करते हैं वे डालें, ताकि व्याख्या असल व्यवहार से मेल खाए।
क्या यह PCRE या Python-विशिष्ट सिंटैक्स समझा सकता है?
ज़्यादातर सिंटैक्स एक जैसा है, पर possessive क्वांटिफ़ायर (a++), ऐटॉमिक ग्रुप (?>…) या इनलाइन फ़्लैग (?i) जैसे इंजन-विशिष्ट कंस्ट्रक्ट JavaScript का हिस्सा नहीं हैं और उन्हें एरर के रूप में बताया जाता है।
ग्रुप की नंबरिंग कैसे होती है?
बाएँ से दाएँ, उनके खुलने वाले कोष्ठक की स्थिति के अनुसार। नॉन-कैप्चरिंग ग्रुप और lookaround को नंबर नहीं मिलता।
तकनीकी नोट्स
हाथ से लिखा गया रिकर्सिव-डिसेंट पार्सर ECMAScript ग्रामर के अनुरूप AST बनाता है (अल्टरनेशन → सीक्वेंस → क्वांटिफ़ाइड एटम)। हर नोड अपना कच्चा सोर्स, ऑफ़सेट और विवरण रखता है; यही पार्सर Regex टेस्टर में कैटास्ट्रॉफ़िक-बैकट्रैकिंग गार्ड भी चलाता है।