मुफ़्त Regex टेस्टर और डिबगर
रियल-टाइम में व्याख्या के साथ रेगुलर एक्सप्रेशन टेस्ट और डिबग करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।
अपडेट किया गया
Regex Tester
Test and debug regular expressions with real-time highlighting, capture group colors, pattern explanation, code generation for 10 languages, multi-line testing, and step-by-step debugger.
Regular Expression
Common Patterns Library28
Test Input
Quick Reference (Cheat Sheet)
Privacy First: All processing happens locally in your browser. Your patterns and test data are never sent to any server. History is stored in your browser's localStorage.
अक्सर पूछे जाने वाले प्रश्न
Regex Tester क्या है?
Regex Tester एक मुफ़्त ऑनलाइन टूल है जो आपको रीयल-टाइम में रेगुलर एक्सप्रेशन का परीक्षण और डिबग करने देता है, साथ ही मैच हाइलाइटिंग और व्याख्याएँ भी देता है।
क्या Regex Tester मुफ़्त है?
हाँ, यह पूरी तरह मुफ़्त है और इसके लिए किसी रजिस्ट्रेशन की ज़रूरत नहीं है। सारी पैटर्न मैचिंग आपके ब्राउज़र में क्लाइंट-साइड पर होती है।
क्या यह रेगुलर एक्सप्रेशन पैटर्न को समझाता है?
हाँ, Regex Tester आपके रेगुलर एक्सप्रेशन पैटर्न की आसानी से समझ में आने वाली व्याख्याएँ देता है ताकि आप उन्हें समझ सकें और डिबग कर सकें।
क्या इस टूल के साथ मेरा डेटा सुरक्षित है?
बिल्कुल। Regex Tester & Debugger सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या संग्रहीत नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी रहती है।
क्या Regex Tester & Debugger मोबाइल डिवाइस पर काम करता है?
हाँ, Regex Tester & Debugger पूरी तरह रिस्पॉन्सिव है और स्मार्टफ़ोन तथा टैबलेट पर काम करता है। आप इसे आधुनिक वेब ब्राउज़र वाले किसी भी डिवाइस पर इस्तेमाल कर सकते हैं, किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।
क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?
किसी खाते या रजिस्ट्रेशन की ज़रूरत नहीं है। बस अपने ब्राउज़र में Regex Tester & Debugger खोलें और तुरंत इस्तेमाल शुरू करें। कोई साइन-अप बाधा या उपयोग प्रतिबंध नहीं है।
मैं Regex Tester & Debugger का उपयोग कैसे करूँ?
बस दिए गए फ़ील्ड में अपना इनपुट दर्ज करें, अपनी पसंद के अनुसार सेटिंग्स समायोजित करें, और टूल इसे तुरंत प्रोसेस कर देगा। फिर आप परिणाम को क्लिपबोर्ड पर कॉपी कर सकते हैं या डाउनलोड कर सकते हैं।
कौन से ब्राउज़र समर्थित हैं?
Regex Tester & Debugger सभी आधुनिक ब्राउज़रों में काम करता है, जिनमें Chrome, Firefox, Safari, Edge और Opera शामिल हैं। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र का नवीनतम संस्करण उपयोग करें।
g, i, m, s, u, और y रेगेक्स फ्लैग्स क्या करते हैं?
फ्लैग्स यह बदलते हैं कि इंजन आपके पैटर्न को कैसे लागू करता है। g (ग्लोबल) फ्लैग पहले मैच पर रुकने के बजाय हर मैच को ढूंढता है। i (इग्नोर केस) फ्लैग अक्षरों को केस की परवाह किए बिना मैच करता है। m (मल्टीलाइन) फ्लैग ^ और $ एंकर को पूरी स्ट्रिंग के बजाय हर लाइन से जोड़ देता है। s (डॉटऑल) फ्लैग डॉट को न्यूलाइन कैरेक्टर्स से भी मैच करने देता है। u (यूनिकोड) फ्लैग पूरी यूनिकोड हैंडलिंग और ज़्यादा सख्त पार्सिंग चालू करता है, जो इमोजी और नॉन-लैटिन टेक्स्ट के लिए ज़रूरी होता है। y (स्टिकी) फ्लैग सिर्फ इंजन की मौजूदा पोज़ीशन से मैच करता है, जो इनपुट को टुकड़ों में तोड़ने (टोकनाइज़ करने) के समय काम आता है। फ्लैग्स को आपस में जोड़ा जा सकता है, इसलिए gi केस को नज़रअंदाज़ करते हुए हर मैच ढूंढता है। यह टूल सभी छह फ्लैग्स को टॉगल के रूप में दिखाता है, ताकि आप इन्हें ऑन-ऑफ करके देख सकें कि हाइलाइट किए गए मैच और मैच काउंट लाइव कैसे बदलते हैं और हर फ्लैग आपके नतीजे को ठीक-ठीक कैसे प्रभावित करता है।
कैटास्ट्रॉफिक बैकट्रैकिंग क्या है और इससे कैसे बचें?
कैटास्ट्रॉफिक बैकट्रैकिंग तब होती है जब किसी पैटर्न में (.*)+ या (a+)+ जैसे नेस्टेड या ओवरलैपिंग क्वांटिफायर होते हैं, जो इंजन को हार मानने से पहले मैच करने के घातांकीय (exponential) तरीकों को आज़माने पर मजबूर कर देते हैं। किसी छोटी, सही-सही बनी स्ट्रिंग पर यह ठीक लगता है, लेकिन थोड़ी लंबी या बिगड़ी हुई इनपुट पर मैचिंग टाइम माइक्रोसेकंड से सेकंड तक बढ़ सकता है, जिससे आपका प्रोग्राम लगभग अटक जाता है। इससे बचने के लिए क्वांटिफायर्स को ओवरलैप न होने दें, .* जैसी व्यापक क्लास के बजाय ज़्यादा स्पेसिफिक कैरेक्टर क्लास इस्तेमाल करें, और जहां संभव हो पैटर्न को एंकर करें। यह टूल टाइप करते समय ही जोखिम भरे कंस्ट्रक्ट्स को फ्लैग कर देता है और Fast से Very Slow तक का एग्ज़ीक्यूशन-टाइम बैज दिखाता है, ताकि प्रोडक्शन तक पहुंचने से पहले ही आप खतरनाक पैटर्न पकड़ सकें। 100 स्टेप्स तक सीमित स्टेप-बाय-स्टेप डीबगर (ताकि कोई बेकाबू पैटर्न पेज को लॉक न कर दे) भी आपको यह देखने देता है कि इंजन हर मैच तक कैसे पहुंचता है। ऊपर अपना एक्सप्रेशन पेस्ट करें और बैज देखकर पक्का करें कि यह Fast बना रहे।
कैप्चर ग्रुप और नॉन-कैप्चरिंग ग्रुप में क्या फर्क है?
एक कैप्चर ग्रुप, जिसे साधारण कोष्ठकों के साथ (\d{4}) जैसे लिखा जाता है, पैटर्न के उस हिस्से को ग्रुप करता है और जो कुछ भी मैच हुआ उसे स्टोर भी कर लेता है ताकि आप बाद में उसे नंबर से, या (?<year>\d{4}) सिंटैक्स के ज़रिए नाम से रेफर कर सकें। एक नॉन-कैप्चरिंग ग्रुप, जिसे (?:...) लिखा जाता है, पैटर्न के किसी हिस्से पर क्वांटिफायर या ऑल्टरनेशन लगाने के लिए उसे ग्रुप करता है, बिना मैच हुए टेक्स्ट को सेव किए, जिससे आपकी ग्रुप नंबरिंग साफ-सुथरी रहती है और यह थोड़ा ज़्यादा एफिशिएंट भी होता है। जब आपको किसी वैल्यू को रिप्लेसमेंट में निकालना या दोबारा इस्तेमाल करना हो तो कैप्चरिंग ग्रुप का उपयोग करें; सिर्फ स्ट्रक्चर के लिए नॉन-कैप्चरिंग ग्रुप का उपयोग करें। दोनों तरह के ग्रुप नेस्ट किए जा सकते हैं, और क्वांटिफायर दोनों पर लगाए जा सकते हैं, इसलिए (?:ab)+ बिना कैप्चर किए जोड़े को दोहराता है। यह टूल हर नंबरयुक्त और नामित कैप्चर ग्रुप को उसकी उस वैल्यू के साथ सूचीबद्ध करता है जो आपके टेस्ट स्ट्रिंग से निकाली गई, और मैच हुए टेक्स्ट में हर एक को हाइलाइट भी करता है, ताकि कोड में जोड़ने से पहले आप पक्का कर सकें कि आपके ग्रुप्स ठीक वही डेटा निकाल रहे हैं जो आप चाहते हैं।
फाइंड और रिप्लेस में $1 जैसे बैकरेफरेंस का इस्तेमाल कैसे करें?
बैकरेफरेंस किसी रिप्लेसमेंट को आपके पैटर्न के ग्रुप्स से कैप्चर किए गए टेक्स्ट को दोबारा इस्तेमाल करने देते हैं। रिप्लेसमेंट स्ट्रिंग्स में आप पहले कैप्चर ग्रुप को $1 से, दूसरे को $2 से, और इसी तरह आगे रेफर करते हैं, इसलिए (\w+)@(\w+) जैसा पैटर्न $2.$1 रिप्लेसमेंट के साथ ऐट-साइन के इर्द-गिर्द किसी टोकन के दो हिस्सों को आपस में बदल देता है। इसी तरीके से आप तारीखों को दोबारा फॉर्मेट करते हैं, नामों को दोबारा क्रम में लगाते हैं, या मैच हुई सामग्री को दोबारा टाइप किए बिना URL को फिर से लिखते हैं। आपकी टारगेट भाषा जिस सिंटैक्स को सपोर्ट करती है उसके आधार पर नामित ग्रुप्स को भी रेफर किया जा सकता है। ध्यान रखें कि पैटर्न के अंदर \1 जैसा बैकरेफरेंस उस टेक्स्ट से मैच करता है जो ग्रुप पहले ही कैप्चर कर चुका है, जो रिप्लेसमेंट में $1 इस्तेमाल करने से अलग है। इस टूल का फाइंड-एंड-रिप्लेस मोड आपके रिप्लेसमेंट स्ट्रिंग एडिट करते ही सब्स्टिट्यूट किए गए आउटपुट का लाइव प्रीव्यू दिखाता है, जिसमें $1, $2, वगैरह बिल्कुल वैसे ही रिज़ॉल्व होते हैं जैसे असली कोड में होते। अपने प्रोजेक्ट में पेस्ट करने से पहले सब्स्टिट्यूशन टेस्ट करने के लिए ऊपर रिप्लेस टैब पर जाएं।
एक ही रेगेक्स पायथन या जावा में अलग तरह से व्यवहार क्यों करता है?
रेगेक्स के फ्लेवर सभी भाषाओं में एक जैसे नहीं होते। यह टूल नेटिव जावास्क्रिप्ट (ECMAScript) इंजन पर चलता है, वही इंजन जो Node और ब्राउज़र में इस्तेमाल होता है, लेकिन पायथन का re, जावा का Pattern, PHP का PCRE, Go का RE2, और अन्य लुकबिहाइंड सपोर्ट, नामित-ग्रुप सिंटैक्स, इनलाइन फ्लैग हैंडलिंग, और फ्लैग्स दिए जाने के तरीके में अलग होते हैं। यहां काम करने वाले पैटर्न को कहीं और थोड़े बदलाव की ज़रूरत पड़ सकती है, खासकर यूनिकोड और बैकरेफरेंस के मामलों में। Go के RE2-आधारित इंजन जैसे कुछ इंजन तो लीनियर टाइम की गारंटी देने के लिए कुछ कंस्ट्रक्ट्स को पूरी तरह अस्वीकार भी कर देते हैं। यही वजह है कि बिल्ट-इन कोड जनरेटर आपके तैयार एक्सप्रेशन को जावास्क्रिप्ट, टाइपस्क्रिप्ट, पायथन, जावा, PHP, Go, रूबी, C#, रस्ट, और स्विफ्ट के लिए आउटपुट करता है, फ्लैग्स को हर भाषा के अपने अंदाज़ में बदलता है, जैसे re.IGNORECASE या Pattern.CASE_INSENSITIVE, और हर एक की खासियतों को नोट भी करता है। सबसे सुरक्षित तरीका यही है कि पहले यहां प्रतिनिधि सैंपल टेक्स्ट पर वैलिडेट कर लें, क्योंकि देखने में सही लगने वाला पैटर्न किसी दूसरे फ्लेवर में भी किनारे के मामले चूक सकता है। ऊपर अपना पैटर्न ट्यून करें, फिर फ्लेवर से जुड़ी हैरानियों से बचने के लिए अपनी टारगेट भाषा के लिए जनरेट किया गया कोड कॉपी करें।
Embed This Tool
Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.
<iframe src="https://getthetoolbox.com/embed/code-tools-regex-tester" title="Free Regex Tester & Debugger — The Toolbox" width="100%" height="320" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/code-tools/regex-tester?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free Regex Tester & Debugger</a> by The Toolbox</p>संबंधित टूल
मुफ़्त CSS मिनिफायर ऑनलाइन
फ़ाइल आकार कम करने और लोडिंग गति सुधारने के लिए CSS कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
मुफ़्त JavaScript मिनिफायर
फ़ाइल आकार कम करने और प्रदर्शन बेहतर करने के लिए JavaScript कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
मुफ़्त HTML मिनिफायर ऑनलाइन
पेज का आकार और लोडिंग समय घटाने के लिए HTML कोड को मिनिफाई करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।
मुफ़्त SQL फ़ॉर्मेटर और ब्यूटिफायर
बेहतर पठनीयता के लिए SQL क्वेरी को फ़ॉर्मेट और सुंदर बनाएं। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में, बिना साइन-अप के।
रेगेक्स टेस्टर और डीबगर के बारे में
रेगेक्स टेस्टर और डीबगर एक मुफ़्त ऑनलाइन वर्कबेंच है जो रेगुलर एक्सप्रेशन बनाने और उनकी खामियां दूर करने के लिए बनाया गया है। एक पैटर्न लिखें, कुछ सैंपल टेक्स्ट पेस्ट करें, और यह रीयल टाइम में हर मैच को हाइलाइट कर देता है, निकाले गए कैप्चर ग्रुप्स की सूची दिखाता है, और सिंटैक्स एरर आते ही उसे फ्लैग कर देता है। यह डेवलपर्स, डेटा के साथ काम करने वालों, और उन सभी के लिए बनाया गया है जो कभी न कभी बैकस्लैश की दीवार को घूरते हुए यह सोच चुके हैं कि आखिर एक पैटर्न सब कुछ मैच क्यों कर रहा है या कुछ भी क्यों नहीं।
रेगुलर एक्सप्रेशन को पढ़ना वैसे भी काफी मुश्किल होता है, इसलिए यह टूल सिर्फ मैच करके नहीं रुकता। यह बताता है कि आपका पैटर्न असल में कर क्या रहा है, उन कंस्ट्रक्ट्स के बारे में चेतावनी देता है जो इंजन को अटका सकते हैं, और दस भाषाओं में तुरंत इस्तेमाल लायक कोड जनरेट करता है ताकि यहां ट्यून किया गया एक्सप्रेशन सीधे आपके प्रोजेक्ट में फिट हो जाए।
सब कुछ आपके ब्राउज़र में नेटिव जावास्क्रिप्ट रेगुलर-एक्सप्रेशन इंजन (वही ECMAScript इम्प्लीमेंटेशन जो आपका कोड Node और ब्राउज़र में इस्तेमाल करता है) के ज़रिए चलता है। आप जो कुछ भी टाइप करते हैं — पैटर्न, टेस्ट स्ट्रिंग, या रिप्लेसमेंट — वह किसी सर्वर पर अपलोड या स्टोर नहीं होता। न कोई साइन-अप चाहिए, न कोई इस्तेमाल की सीमा।
किसी पैटर्न को टेस्ट और डीबग कैसे करें
अपना एक्सप्रेशन डालें और छह में से किसी भी फ्लैग को ऑन/ऑफ करें जो यह तय करते हैं कि यह कैसे व्यवहार करेगा:
- g (ग्लोबल) — पहले मैच पर रुकने के बजाय हर मैच को ढूंढता है।
- i (इग्नोर केस) — अक्षरों को केस की परवाह किए बिना मैच करता है।
- m (मल्टीलाइन) —
^और$को पूरी स्ट्रिंग के बजाय हर लाइन पर एंकर होने देता है। - s (डॉटऑल) —
.को न्यूलाइन कैरेक्टर्स से भी मैच करने देता है। - u (यूनिकोड) — पूरी यूनिकोड हैंडलिंग और ज़्यादा सख्त पार्सिंग चालू करता है।
- y (स्टिकी) — इंजन की मौजूदा पोज़ीशन से ही मैच करता है।
जैसे-जैसे आप एडिट करते हैं, टेस्ट टेक्स्ट में मैच हाइलाइट होते जाते हैं और हर नंबरयुक्त तथा नामित कैप्चर ग्रुप अपनी वैल्यू के साथ सूचीबद्ध हो जाता है। एक छोटा-सा एग्ज़ीक्यूशन-टाइम बैज हर रन को Fast से लेकर Very Slow तक की श्रेणी में लेबल करता है, और एक स्टेप-बाय-स्टेप डीबगर यह दिखाता है कि इंजन हर मैच तक कैसे पहुंचता है (100 स्टेप्स तक सीमित, ताकि कोई बेकाबू पैटर्न पेज को लॉक न कर दे)। अगर आप (.*)+ जैसा कुछ लिखते हैं, तो यह टूल आपको कैटास्ट्रॉफिक बैकट्रैकिंग के बारे में चेतावनी देता है — नेस्टेड क्वांटिफायर्स जो कुछ इनपुट्स पर मैचिंग टाइम को बुरी तरह बढ़ा सकते हैं।
रिप्लेस, बैच-टेस्ट, और एक्सपोर्ट
फाइंड-एंड-रिप्लेस मोड लाइव सब्स्टिट्यूशन का प्रीव्यू दिखाता है, जिसमें $1 जैसे बैकरेफरेंस बिल्कुल वैसे ही काम करते हैं जैसे वे कोड में करते। मल्टीलाइन टैब आपको एक साथ कई लाइनों के खिलाफ एक पैटर्न जांचने देता है — जो ईमेल या लॉग एंट्रीज़ के किसी पूरे कॉलम को वैलिडेट करने के लिए काफी काम आता है। जब एक्सप्रेशन सही हो जाए, तो कोड जनरेटर इसे जावास्क्रिप्ट, टाइपस्क्रिप्ट, पायथन, जावा, PHP, Go, रूबी, C#, रस्ट, और स्विफ्ट के लिए आउटपुट करता है, साथ ही सही फ्लैग ट्रांसलेशन (पायथन का re.IGNORECASE, जावा का Pattern.CASE_INSENSITIVE, वगैरह) और हर भाषा की खासियतों पर नोट्स के साथ। आप किसी भी नतीजे को कॉपी कर सकते हैं, डाउनलोड कर सकते हैं, या पूरा सेटअप एक URL के रूप में शेयर कर सकते हैं जो पैटर्न, फ्लैग्स, और टेस्ट स्ट्रिंग को दोबारा लोड कर देता है। हाल के पैटर्न आपके ब्राउज़र के लोकल स्टोरेज में सेव रहते हैं ताकि आप बाद में उन पर वापस लौट सकें।
तैयार पैटर्न्स की एक लाइब्रेरी
अगर आप किसी काम कर रहे उदाहरण से शुरुआत करना चाहें, तो बिल्ट-इन लाइब्रेरी में करीब 30 जांचे-परखे पैटर्न मौजूद हैं जो सबसे आम मामलों को कवर करते हैं: ईमेल पते, HTTP/HTTPS URL, US और इंटरनेशनल फोन नंबर, IPv4 और IPv6 पते, MAC पते, ISO और US तारीखें, 24-घंटे के समय, हेक्स कलर्स, UUID, सिमैंटिक वर्शन, स्ट्रॉन्ग-पासवर्ड नियम, क्रेडिट-कार्ड फॉर्मेट, URL स्लग, मार्कडाउन लिंक्स, और भी बहुत कुछ। हर एक के साथ एक विवरण और सैंपल टेक्स्ट दिया गया है ताकि उसे अपने हिसाब से बदलने से पहले आप देख सकें कि यह कैसे मैच करता है। ये एक भरोसेमंद शुरुआती बिंदु हैं, लेकिन हमेशा अपने खुद के डेटा पर टेस्ट करें — जैसे कि एक "वैलिड ईमेल" रेगेक्स कभी भी ईमेल स्पेसिफिकेशन को पूरी तरह मैच नहीं कर सकता, और ज़्यादातर प्रोडक्शन पैटर्न सख्ती और व्यावहारिकता के बीच जानबूझकर किए गए समझौते होते हैं।
टेस्टर क्यों ज़रूरी है
एक रेगुलर एक्सप्रेशन देखने में सही लग सकता है, पर चुपचाप ज़रूरत से ज़्यादा मैच कर सकता है या कुछ किनारे के मामले (edge cases) छोड़ सकता है, और एक गलत जगह पर लगा क्वांटिफायर एक तेज़ पैटर्न को भी असली इनपुट पर अटकाने वाला बना सकता है। शिप करने से पहले प्रतिनिधि सैंपलों पर टेस्ट करने से दोनों समस्याएं पकड़ में आ जाती हैं। ऊपर अपना पैटर्न और कुछ टेक्स्ट पेस्ट करें ताकि देख सकें यह वास्तव में क्या मैच करता है, समझ सकें ऐसा क्यों होता है, और नतीजे को अपने कोडबेस में ले जा सकें।