§

पैटर्न

फ़्लैग्स
§

टेस्ट स्ट्रिंग

§

मैच

0 मैच

    अभी कोई मैच नहीं — ऊपर एक पैटर्न और एक टेस्ट स्ट्रिंग टाइप करें।

    §

    रिप्लेस मोड

    त्वरित संदर्भ

    कैरेक्टर क्लास

    \d
    कोई भी अंक, [0-9] के समान।
    \w
    कोई भी वर्ड कैरेक्टर — अक्षर, अंक या अंडरस्कोर।
    \s
    कोई भी व्हाइटस्पेस — स्पेस, टैब, न्यूलाइन आदि।

    एंकर

    \b
    वर्ड बाउंड्री पर शून्य-चौड़ाई वाला असर्शन।
    ^
    इनपुट की शुरुआत (या m फ़्लैग सेट होने पर हर पंक्ति की)।
    $
    इनपुट का अंत (या m फ़्लैग सेट होने पर हर पंक्ति का)।

    क्वांटिफायर

    *
    पिछले टोकन के शून्य या अधिक, ग्रीडी।
    +
    पिछले टोकन के एक या अधिक, ग्रीडी।
    ?
    पिछले टोकन का शून्य या एक — और पिछले क्वांटिफायर को लेज़ी भी बनाता है।
    {n,m}
    पिछले टोकन की n से m तक पुनरावृत्तियाँ।

    ग्रुप

    (...)
    कैप्चरिंग ग्रुप — रिप्लेसमेंट में $1, $2, … के रूप में उपलब्ध।
    (?:...)
    नॉन-कैप्चरिंग ग्रुप — स्लॉट लिए बिना ग्रुप करता है।
    (?...)
    नाम वाला कैप्चरिंग ग्रुप — रिप्लेसमेंट में $ के रूप में उपलब्ध।

    Lookaround

    (?=...)
    पॉज़िटिव lookahead — केवल तभी मैच करता है जब इसके बाद … आए
    (?!...)
    नेगेटिव lookahead — केवल तभी मैच करता है जब इसके बाद … न आए
    (?<=...)
    पॉज़िटिव lookbehind — केवल तभी मैच करता है जब इससे पहले … हो
    (?
    नेगेटिव lookbehind — केवल तभी मैच करता है जब इससे पहले … न हो

    एस्केप

    \\
    एक शाब्दिक बैकस्लैश कैरेक्टर।
    \.
    एक शाब्दिक डॉट — किसी भी मेटाकैरेक्टर को शाब्दिक रूप से मैच करने के लिए उसे एस्केप करें।

    भारतीय डेवलपर regex को रोज़मर्रा के India-specific validation में लगाते हैं — Aadhaar नंबर का 12-digit pattern (UIDAI Verhoeff checksum से पहले format-validate), PAN का ^[A-Z]{5}[0-9]{4}[A-Z]$ pattern (CBDT spec), GSTIN का 15-character pattern (राज्य-कोड + PAN + entity + Z + checksum), IFSC code का ^[A-Z]{4}0[A-Z0-9]{6}$, और भारतीय मोबाइल का ^[6-9]\d{9}$ — सब टीम के backend validator में हार्ड-कोडेड हैं। Flipkart और Meesho seller-panel SKU pattern verify करते हैं, NGINX access log पर Apache combined-format parse करना SRE की रूटीन है। React Hook Form, Husky pre-commit hook (Infosys/TCS template), और GitHub Actions workflow में regex हर जगह है। यह tester पूरी तरह ब्राउज़र-side चलता है — sensitive PII pattern test कभी सर्वर पर नहीं जाता।

    आपके ब्राउज़र में regex कैसे काम करता है?

    हर JavaScript रनटाइम एक नेटिव रेगुलर एक्सप्रेशन इंजन के साथ आता है — new RegExp(pattern, flags) आपका पैटर्न कंपाइल करता है, फिर String.prototype.match, String.prototype.replace, और RegExp.prototype.exec जैसे मेथड उसे किसी भी इनपुट स्ट्रिंग पर चलाते हैं। यह टेस्टर उस इंजन को एक UI में लपेटता है ताकि आप ब्राउज़र छोड़े बिना पैटर्न को एडिट, रन और इंस्पेक्ट कर सकें। आप जो भी टाइप करते हैं — पैटर्न, फ़्लैग्स, टेस्ट स्ट्रिंग या रिप्लेसमेंट — कुछ भी नेटवर्क पर नहीं भेजा जाता।

    regex टेस्टर कैसे काम करता है?

    पाइपलाइन कुछ छोटे चरणों की है, और सभी हर कीस्ट्रोक पर क्लाइंट साइड पर चलते हैं (टाइपिंग को सहज रखने के लिए 150 ms का debounce):

    1. आपके पैटर्न का बॉडी ऊपर के फ़ील्ड से पढ़ा जाता है (शुरू या अंत में कोई / डेलिमिटर नहीं — वे सजावटी हैं)। चुनी गई फ़्लैग पिल्स को gi या gimsuy जैसी फ़्लैग स्ट्रिंग में जोड़ा जाता है।
    2. new RegExp(patternBody, flags) पैटर्न कंपाइल करता है। यदि इंजन SyntaxError थ्रो करता है (जैसे बिना मिलान वाला कोष्ठक या अमान्य एस्केप), तो संदेश टेस्ट स्ट्रिंग के ऊपर प्रदर्शित होता है और मैच सूची साफ़ हो जाती है। कंपाइल एरर V8 / SpiderMonkey / JavaScriptCore का असली err.message है, इसलिए वही दिखता है जो आप DevTools में देखेंगे।
    3. मैच सूची के लिए, टेस्टर हमेशा एक सिंथेटिक ग्लोबल फ़्लैग के साथ enumerate करता है — इसलिए भले ही आप g बंद कर दें, सूची हर मैच दिखाती है। शून्य-चौड़ाई-मैच के विरुद्ध मानक गार्ड (if (m.index === rx.lastIndex) rx.lastIndex++) लूप को उन पैटर्न पर अटकने से रोकता है जो खाली स्ट्रिंग से मैच करते हैं। रिप्लेस मोड आपके वास्तविक फ़्लैग सेट को ध्यान में रखता है ताकि $& String.prototype.replace की तरह ही व्यवहार करे।
    4. हर इटरेशन के बीच, टेस्टर performance.now() - start की जाँच करता है और 50 ms बीतने पर रद्द कर देता है। यह (a+)+$ जैसे इनपुट्स पर लम्बी a श्रृंखला के विरुद्ध कैटैस्ट्रोफिक बैकट्रैकिंग से बचाता है — अन्यथा टैब हैंग हो जाएगा। यह गार्ड बेस्ट-एफ़र्ट है: सिंगल-मैच वाला रोगात्मक पैटर्न अभी भी एक exec कॉल के अंदर समय खा सकता है। यदि ऐसा हो, तो टैब रिफ्रेश करें और पैटर्न को नॉन-ग्रीडी क्वांटिफायर या एटॉमिक-स्टाइल पोज़ेसिव (जैसे [^x]*x) से दोबारा लिखें।
    5. टेस्ट स्ट्रिंग हर मैच की रेंज पर सेगमेंट्स में बँट जाती है और मैच किए गए सेगमेंट <mark class="rx-match rx-cap-N"> एलिमेंट में लिपटे होते हैं, जहाँ N छह पैलेट रंगों से चक्र पूरा करता है ताकि आसन्न मैच एक नज़र में अलग दिखें। हर मैच के संख्या वाले ग्रुप (m[1], m[2], …) और नाम वाले ग्रुप (m.groups) नीचे लेबल वाली पंक्तियों के रूप में दिखाए जाते हैं; यदि d फ़्लैग सेट हो, तो प्रति-ग्रुप [start, end] इंडेक्स भी दिखाए जाते हैं।

    इस regex टेस्टर का उपयोग क्यों करें?

    • गोपनीयता: हर पैटर्न, टेस्ट स्ट्रिंग और रिप्लेसमेंट आपके ब्राउज़र में बिल्ट-इन JavaScript RegExp इंजन से चलता है। कुछ भी टैब से बाहर नहीं जाता — यह तब अहम है जब इनपुट एक कस्टमर लॉग, लीक हुआ क्रेडेंशियल पैटर्न, या ऐसा कुछ हो जिसे आप किसी होस्टेड SaaS regex प्लेग्राउंड में पेस्ट नहीं करेंगे।
    • ईमानदार फ़्लेवर: टेस्टर ठीक वही regex इंजन उजागर करता है जिसे Node.js, Chrome, Safari, Firefox और हर ब्राउज़र-आधारित फ़ॉर्म वैलिडेटर चलाता है। कोई Perl-फ़्लेवर अनुवाद परत नहीं जो सूक्ष्म अंतरों को छुपा दे — जो यहाँ काम करता है वही आपके कोड में भी काम करेगा।
    • कैप्चर और नाम वाले ग्रुप की डिबगिंग: हर संख्या वाला ग्रुप ($1, $2, …) और नाम वाला ग्रुप ($<year>) प्रति-मैच दिखाया जाता है, ताकि आप एक पार्सर बना सकें और स्लॉट्स बिना अनुमान के पढ़ सकें। रिप्लेस मोड में आप ग्रुप्स को स्वतंत्र रूप से मिला सकते हैं — $2-$1 पहले दो स्लॉट्स को स्वैप करता है, $<name> नाम वाला स्लॉट डालता है, और $& पूरा मैच लौटाता है।
    • कैटैस्ट्रोफिक-बैकट्रैकिंग गार्ड: enumeration पर 50 ms की सीमा (a+)+$ जैसे रोगात्मक पैटर्न्स को टैब फ़्रीज़ करने से पहले रद्द कर देती है। हैंग ब्राउज़र की जगह आप एक व्याख्यात्मक एरर देखते हैं, और पेज तुरंत ठीक हो जाता है।

    regex टेस्टर के सामान्य अनुप्रयोग क्या हैं?

    रेगुलर एक्सप्रेशन वेब डेवलपमेंट, सुरक्षा और डेटा कार्य में आते हैं — यह टेस्टर सबसे सामान्य उपयोग के मामलों को लक्षित करता है:

    • फ़ॉर्म वैलिडेशन: किसी ईमेल, फ़ोन या पोस्टल कोड पैटर्न का प्रोटोटाइप बनाएँ, टेस्ट स्ट्रिंग में नमूना इनपुट पेस्ट करें, और प्रोडक्शन कोड में पैटर्न शिप करने से पहले पुष्टि करें कि हर पॉज़िटिव केस मैच करता है और हर नेगेटिव केस नहीं करता।
    • लॉग स्क्रैपिंग: NGINX, ऐप्लिकेशन या ऑडिट-लॉग आउटपुट का एक हिस्सा पेस्ट करें, अपनी रुचि के भागों के लिए नाम वाले ग्रुप्स के साथ पैटर्न लिखें ((?<ip>…) (?<path>…)) और हर मैच पर कैप्चर किए गए स्लॉट्स पढ़कर पुष्टि करें कि आपका पार्सर सही है।
    • रिफ़ैक्टर के लिए सर्च-एंड-रिप्लेस: किसी स्निपेट में पहचानकर्ताओं को फिर से लिखने के लिए रिप्लेस मोड का उपयोग करें — (\w+)\.set(\w+)\($1.$2 = सेटर कॉल्स को प्रॉपर्टी असाइनमेंट में बदल देता है, और लाइव प्रीव्यू कोडमॉड में कमिट करने से पहले परिणाम दिखाता है।

    regex उदाहरण कैसा दिखता है?

    पैटर्न (\d{4})-(\d{2})-(\d{2}) को g फ़्लैग के साथ टेस्ट स्ट्रिंग release 2025-11-15, prerelease 2026-05-25 पर चलाएँ। इंजन दो मैच पाता है। पहला मैच 2025-11-15 है जिसमें ग्रुप 1 = 2025, ग्रुप 2 = 11, ग्रुप 3 = 15। दूसरा मैच 2026-05-25 है, उसी ग्रुप आकार के साथ। रिप्लेस मोड में, रिप्लेसमेंट टेम्पलेट $3/$2/$1 दोनों तिथियों को 15/11/2025 और 25/05/2026 में फिर से लिखता है — एकल-पैटर्न ISO-से-DMY रूपांतरण जिसे आप किसी स्क्रिप्ट में पैटर्न जोड़ने से पहले दृष्टि से सत्यापित कर सकते हैं।

    किसी भी regex कार्य के लिए — पैटर्न बनाने, डिबग करने या फिर से लिखने — के लिए इस टेस्टर को त्वरित रास्ते के रूप में उपयोग करें। सब कुछ स्थानीय रूप से चलता है; कुछ भी लॉग नहीं किया जाता; regex इंजन वही है जो आपके ब्राउज़र के साथ आता है, इसलिए व्यवहार रनटाइम पर प्रोडक्शन कोड जो देखेगा वही होता है।