रेगेक्स (RegEx) परीक्षक और डीबगर

जावास्क्रिप्ट रेगुलर एक्सप्रेशन का परीक्षण करें, कैप्चरिंग समूहों का विश्लेषण करें और वास्तविक समय में मिलान हाइलाइट देखें।

रेगेक्स (RegEx) परीक्षक और डीबगर

जावास्क्रिप्ट रेगुलर एक्सप्रेशन का परीक्षण करें, कैप्चरिंग समूहों का विश्लेषण करें और वास्तविक समय में मिलान हाइलाइट देखें।

यह कैसे काम करता है

1
टेक्स्ट दर्ज करें या चिपकाएँ
इनपुट क्षेत्र में अपना टेक्स्ट या कोड लिखें या चिपकाएँ।
2
रूपांतरण लागू करें
टेक्स्ट को प्रारूपित, फ़िल्टर या विश्लेषित करने के लिए टूल चलाएँ।
3
आउटपुट कॉपी करें
एक क्लिक में संसाधित परिणाम क्लिपबोर्ड पर कॉपी करें।
अवधारणा और ज्ञान केंद्र

रेगुलर एक्सप्रेशन (RegEx) टेस्टर, डीबगर और लाइव सिंटैक्स मैच हाइलाइटर

रेगुलर एक्सप्रेशन टेस्टर और डीबगर सॉफ्टवेयर इंजीनियरों, डेटा वैज्ञानिकों और सिस्टम प्रशासकों के लिए टेक्स्ट पैटर्न की खोज, डेटा एक्सट्रैक्शन और इनपुट वैलिडेशन नियमों का वास्तविक समय में परीक्षण करने का एक अनिवार्य विकास उपकरण है। जावास्क्रिप्ट रेगेक्स इंजन (RegExp) पर आधारित यह टूल जटिल रेगुलर एक्सप्रेशन लिखते समय सिंटैक्स त्रुटियों, लालची क्वांटिफायर्स (Greedy Quantifiers) और संभावित बैकपैकिंग समस्याओं को तुरंत पहचानने में मदद करता है।

एक व्यावहारिक उदाहरण में, मान लीजिए आपको किसी लॉग फ़ाइल या फॉर्म इनपुट से भारतीय मोबाइल नंबर या ईमेल आईडी फ़िल्टर करनी है। पैटर्न फ़ील्ड में ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ दर्ज करके और Global (g) तथा Case-insensitive (i) फ्लैग्स सक्षम करके जब आप 50 पंक्तियों का टेस्ट डेटा पेस्ट करते हैं, तो टूल तुरंत मैच हुए सभी ईमेल एड्रेस को पीले रंग में हाइलाइट करता है और प्रत्येक कैप्चर ग्रुप (Capture Group) का सटीक इंडेक्स और मान प्रदर्शित करता है।

रेडोस (ReDoS - Regular Expression Denial of Service) और डेटा सुरक्षा को ध्यान में रखते हुए, सभी पैटर्न मिलान पूर्णतः आपके स्थानीय ब्राउज़र सैंडबॉक्स में निष्पादित होते हैं। परीक्षण के लिए पेस्ट किया गया कॉर्पोरेट लॉग डेटा, ग्राहक फोन नंबर या आंतरिक कोड स्निपेट्स कभी भी किसी बाहरी सर्वर पर अपलोड नहीं होते हैं।

तकनीकी गाइड

रेगेक्स (Regex) मैच क्यों नहीं हो रहा है: फ़्लैग्स, मल्टीलाइन एंकर और एस्केप कैरेक्टर

रेगेक्स पैटर्न के मैच न होने की समस्या को ठीक करें। g, i, m, s फ़्लैग्स, मल्टीलाइन ^ और $ एंकर, ग्रीडी बनाम लेज़ी क्वांटिफ़ायर और ReDoS रोकथाम गाइड।

गाइड पढ़ें →

मूल वास्तुकला और गणितीय सूत्र

पैटर्न मिलान: const regex = new RegExp(पैटर्न, फ्लैग्स) ➔ regex.exec(टेक्स्ट) या [...text.matchAll(regex)]

कंपाइल किया गया रेगेक्स ऑब्जेक्ट टेक्स्ट स्ट्रिंग को स्कैन करता है, सभी मिलान ऑफसेट्स और कैप्चर ग्रुप्स की पहचान करता है और विज़ुअल हाइलाइटर में प्रदर्शित करता है।

सर्वोत्तम अभ्यास और आवश्यक दिशानिर्देश

  • कैटैस्ट्रॉफ़िक बैकपैकिंग (Catastrophic Backtracking) से बचें: नेस्टेड क्वांटिफायर्स जैसे (a+)+ लिखने से बचें क्योंकि गैर-मिलान वाले इनपुट पर यह ब्राउज़र इंजन को हैंग कर सकता है।
  • सटीक सीमा पहचान के लिए वर्ड बाउंड्री (\b) का उपयोग करें: किसी विशिष्ट शब्द को खोजने के लिए \bword\b का उपयोग करें ताकि लंबे शब्दों के भीतर आंशिक मिलान से बचा जा सके।
  • गैर-कैप्चरिंग ग्रुप्स (?:...) का उपयोग करके मेमोरी बचाएं: यदि आपको केवल समूहीकरण की आवश्यकता है और कैप्चर किए गए मान की आवश्यकता नहीं है, तो (?:pattern) का उपयोग करें।
  • फ्लैग्स का सही संयोजन चुनें: संपूर्ण टेक्स्ट में सभी मिलान खोजने के लिए g (ग्लोबल), केस की उपेक्षा के लिए i, और बहु-पंक्ति मिलान के लिए m फ्लैग का उपयोग करें।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

रेगेक्स में 'g', 'i' और 'm' फ्लैग्स का क्या कार्य है?
'g' (ग्लोबल) पहले मिलान के बाद रुकने के बजाय सभी मिलान खोजता है; 'i' बड़े और छोटे अक्षरों के अंतर को अनदेखा करता है; 'm' (मल्टीलाइन) ^ और $ को प्रत्येक लाइन की शुरुआत और अंत पर लागू करता है।
रेगेक्स में लालची (Greedy) और आलसी (Lazy) क्वांटिफायर में क्या अंतर है?
डिफ़ॉल्ट रूप से क्वांटिफायर जैसे .* लालची होते हैं और अधिकतम संभव टेक्स्ट मैच करते हैं। उनके बाद ? जोड़ने पर (जैसे .*?) वे आलसी बन जाते हैं और न्यूनतम संभव टेक्स्ट मैच करते हैं।
क्या मैं इस टूल में लुकअहेड (Lookahead) और लुकबिहाइंड (Lookbehind) का परीक्षण कर सकता हूँ?
हाँ। आधुनिक जावास्क्रिप्ट V8 इंजन पॉजिटिव और नेगेटिव लुकअहेड (?=...), (?!...) और लुकबिहाइंड (?<=...), (?<!...) दोनों का पूर्ण समर्थन करता है।
क्या मेरा परीक्षण टेक्स्ट और रेगेक्स पैटर्न सर्वर पर भेजा जाता है?
नहीं। संपूर्ण पैटर्न मिलान और हाइलाइटिंग केवल आपके स्थानीय कंप्यूटर के ब्राउज़र में होती है। कोई डेटा सर्वर पर नहीं भेजा जाता।