सामग्री पर जाएँ
100% प्राइवेसी — फ़ाइलें आपकी डिवाइस पर ही रहती हैं
>_
हिन्दी

Regex Tester

रेगुलर एक्सप्रेशन को लाइव हाइलाइटिंग, कैप्चर ग्रुप, और रिप्लेस प्रीव्यू के साथ टेस्ट करें — पूरी तरह आपके ब्राउज़र में।

//g

इंजन: JavaScript (ECMAScript) रेगुलर एक्सप्रेशन, जिन्हें आपका ब्राउज़र चलाता है। व्यवहार PCRE, Python, Go, Java या .NET से अलग हो सकता है।

Flags
पैटर्न समझाएँ

पैटर्न दर्ज करें, उसे टोकन-दर-टोकन समझाया जाएगा।

पैटर्न लाइब्रेरी

किसी पैटर्न पर क्लिक करके उसे (नमूना टेक्स्ट के साथ) टेस्टर में लोड करें।

हर लाइन में एक केस। पैटर्न का मेल खाना ज़रूरी हो तो "+ " से शुरू करें, और मेल न खाना ज़रूरी हो तो "- " से (यहाँ g और y फ़्लैग अनदेखे किए जाते हैं)।

कोड बनाएँ

कोड बनाने के लिए पैटर्न दर्ज करें।

पैटर्न जैसा लिखा है वैसा ही कॉपी होता है (सिर्फ़ नामित ग्रुप, फ़्लैग और रिप्लेसमेंट टोकन ढाले जाते हैं)। टारगेट इंजन में lookbehind, बैकरेफ़रेंस और Unicode सपोर्ट जाँच लें।

क्विक रेफरेंस
  • \d — कोई भी अंक (0–9)
  • \w — कोई भी वर्ड कैरेक्टर (अक्षर, अंक, अंडरस्कोर)
  • \s — कोई भी व्हाइटस्पेस कैरेक्टर
  • . — लाइन ब्रेक को छोड़कर कोई भी कैरेक्टर
  • ^ — स्ट्रिंग की शुरुआत (या लाइन की, multiline flag के साथ)
  • $ — स्ट्रिंग का अंत (या लाइन का, multiline flag के साथ)
  • * — पिछले टोकन के शून्य या उससे ज़्यादा बार
  • + — पिछले टोकन के एक या उससे ज़्यादा बार
  • ? — पिछले टोकन के शून्य या एक बार
  • {n,m} — n से m बार के बीच रिपीटिशन
  • (...) — कैप्चरिंग ग्रुप, (?:...) — नॉन-कैप्चरिंग ग्रुप
  • \b — वर्ड बाउंड्री, | — ऑल्टरनेशन (OR)

ब्राउज़र में regex टेस्ट करना असल में काम कैसे करता है?

रेगुलर एक्सप्रेशन टेक्स्ट मैच करने के लिए एक कॉम्पैक्ट पैटर्न लैंग्वेज है — "क्या यह किसी ईमेल एड्रेस जैसा दिखता है" से लेकर "इस डॉक्यूमेंट में हर फ़ोन नंबर ढूंढो" और "इस स्ट्रिंग से HTML टैग हटाओ" तक सब कुछ इससे हो जाता है। दिक्कत यह है कि regex सिंटैक्स में मामूली-सी गलती हो जाना बेहद आसान है और वह अक्सर पकड़ में नहीं आती: एक `.` जिसे escape करना चाहिए था, कोई greedy `*` जो ज़रूरत से कहीं ज़्यादा टेक्स्ट खा जाए, कोई group जो वह कैप्चर ही न करे जो आप उम्मीद कर रहे थे। किसी pattern को बिना टेस्ट किए लिख देना और उसकी गलती का पता तब चलना जब वह पहले से ही प्रोडक्शन डेटा पर चल रहा हो — यह सबक सीखने का बहुत बुरा तरीका है।

यह टूल पूरी तरह JavaScript के अपने बिल्ट-इन `RegExp` इंजन पर चलता है, आपके टाइप करते ही सीधे आपके ब्राउज़र में एक्ज़ीक्यूट होता है — इसमें कोई सर्वर शामिल नहीं है, इसलिए आप जिस भी टेक्स्ट के खिलाफ टेस्ट कर रहे हैं (जो असली यूज़र डेटा, लॉग लाइनें, या ऐसा कुछ भी हो सकता है जिसे आप किसी थर्ड-पार्टी सर्विस में पेस्ट नहीं करना चाहेंगे) वह कभी आपकी मशीन से बाहर नहीं जाता। चूंकि यह वही इंजन है जिस पर आपका JavaScript कोड प्रोडक्शन में चलेगा, यहां जो कुछ भी आप देखते हैं — कौन-से कैरेक्टर मैच हुए, greedy quantifier कैसा बर्ताव करते हैं, किसी group ने कुछ कैप्चर किया या नहीं — वह ठीक वैसा ही है जो आपको रनटाइम पर मिलेगा, किसी अलग regex फ्लेवर से लिया गया अनुमान नहीं।

एक pattern टाइप करें और जो flags चाहिए उन्हें ऑन करें: पहले मैच पर रुकने की बजाय हर मैच ढूंढने के लिए `g`, केस-इनसेंसिटिव मैचिंग के लिए `i`, पूरी स्ट्रिंग की बजाय `^` और `$` को हर लाइन की शुरुआत/अंत पर मैच कराने के लिए `m`, और `.` को न्यूलाइन भी मैच करने देने के लिए `s`। आपकी टेस्ट स्ट्रिंग में हर मैच लाइव हाइलाइट होता है, और हर एक को नीचे उसके पूरे मैच किए गए टेक्स्ट, उसकी पोज़िशन, और किसी भी कैप्चर ग्रुप — यहां तक कि `(?<year>\d{4})` जैसे named group भी — के साथ अलग करके दिखाया जाता है, ताकि आप तुरंत देख सकें कि जो group आप निकालना चाहते थे वह असल में वही है जो मैच हुआ। Replace सेक्शन ठीक वही दिखाता है जो `String.replace()` आपके pattern और एक replacement string के साथ बनाएगा, जिसमें `$1` या `$<year>` जैसे group backreference भी शामिल हैं।

नीचे दिया गया क्विक-रेफरेंस पैनल उन टोकन को कवर करता है जिन्हें लोग काम के बीच में सबसे ज़्यादा भूलते हैं — `*` और `+` के बीच का फर्क, non-capturing group `(?:...)` किस काम आता है, `\b` किसी word boundary को कैसे मार्क करता है — बिना उन्हें ढूंढने के लिए पेज छोड़े। जब आपके पास एक ऐसा pattern आ जाए जो असली टेस्ट डेटा पर वैसा ही बर्ताव करे जैसा आप चाहते हैं, तो वह सीधे आपके कोड में डालने के लिए तैयार है। अगर आपको आसपास के डेटा को ही वैलिडेट या रीफॉर्मेट करना है, तो JSON Formatter & Validator और Text Diff Checker टूल्स इसके स्वाभाविक साथी हैं।

अक्सर पूछे जाने वाले सवाल

क्या खराब regex पैटर्न पेज को फ़्रीज़ कर सकता है?

नहीं — मैचिंग अलग Web Worker में सख़्त टाइमआउट के साथ चलती है, इसलिए catastrophic-backtracking वाला पैटर्न भी आपका टैब नहीं अटका सकता।

क्या यह नामित और क्रमांकित कैप्चर ग्रुप दिखाता है?

हाँ — हर मेल अपने क्रमांकित ग्रुप और (?<year>\d{4}) जैसे किसी भी नामित ग्रुप को सूचीबद्ध करता है।

क्या कोड में इस्तेमाल से पहले रिप्लेसमेंट का प्रीव्यू देख सकता हूँ?

हाँ — Replace पैनल ठीक वही दिखाता है जो String.replace() आउटपुट करता, ग्रुप बैकरेफ़रेंस सहित।

जुड़े हुए टूल्स