Regex टेस्टर
पैटर्न लिखें और हर मैच को संदर्भ में हाइलाइट होते देखें — कोई बटन नहीं, और इंजन ब्राउज़र का अपना JavaScript RegExp है।
मैच परिणाम
इसका उपयोग कैसे करें
- पैटर्न स्लैश के बिना लिखें और ज़रूरी फ़्लैग चालू करें: टाइप करते ही मैच अपडेट होते हैं, दबाने के लिए कोई बटन नहीं।
- जाँचने का टेक्स्ट पेस्ट करें। परिणाम पैनल में हर मैच हाइलाइट होता है, और हर एक अपनी स्थिति, टेक्स्ट और कैप्चर ग्रुप के साथ सूचीबद्ध होता है।
- सभी मैच किए मान एक साथ कॉपी करें, या उन्हें टेक्स्ट फ़ाइल के रूप में डाउनलोड करें — हर मैच एक पंक्ति में।
उदाहरण
पैटर्न और टेक्स्ट
(\w+)@(\w+)\.(\w+) priya@example.com और arjun@example.org जाँचें।
मैच
मैच: 2 #1 [0–17] priya@example.com 1: priya 2: example 3: com #2 [22–39] arjun@example.org 1: arjun 2: example 3: org
पहली पंक्ति पैटर्न है (स्लैश की ज़रूरत नहीं), बाक़ी जाँचने का टेक्स्ट। ये रेंज 0 से शुरू होने वाले, अंत को छोड़ने वाले ऑफ़सेट हैं — वही संख्याएँ जो JavaScript match.index में देता है। ग्लोबल मैचिंग हमेशा चालू है, इसलिए g टॉगल न होने पर भी सभी जगहें मिलती हैं।
नियम, सीमाएँ और ज्ञात समस्याएँ
- इंजन ब्राउज़र का अपना JavaScript RegExp है: PCRE, Python, Go या RE2 फ़्लेवर नहीं हैं, और फ़्लेवर चुनने का विकल्प भी नहीं। \A, \z और (?i) जैसे इनलाइन फ़्लैग समर्थित नहीं हैं।
- ग्लोबल मैचिंग हमेशा चालू रहती है; फ़्लैग सिर्फ़ i, m, s और u हैं। y (स्टिकी), d (इंडेक्स) और v (Unicode सेट) नहीं दिए जाते।
- आगे-पीछे के /…/ सिर्फ़ सजावट हैं: यहाँ पैटर्न के अंदर का / एस्केप नहीं माँगता, JavaScript लिटरल के उलट। उनके बगल में दिखता फ़्लैग टेक्स्ट ही कोड में दोबारा इस्तेमाल करने योग्य ठीक स्ट्रिंग है।
- सिंटैक्स त्रुटि पर स्थानीयकृत उपसर्ग के बाद ब्राउज़र का अपना संदेश (अंग्रेज़ी में) दिखता है; शब्द हर ब्राउज़र में अलग होते हैं।
- खाली टेस्ट टेक्स्ट पर कोई परिणाम नहीं आता — जाँचने के लिए कोई पंक्ति ही नहीं, इसलिए ^$ जैसे पैटर्न यहाँ सत्यापित नहीं हो सकते।
- 2000 मैच तक इकट्ठा होते हैं (फिर गिनती 2000+ दिखती है) और सूची में पहले 200 रेंडर होते हैं। दोनों सीमाएँ बताई जाती हैं, चुपचाप काटी नहीं जातीं।
- 100,000 कैरेक्टर से लंबा टेक्स्ट भी टाइप करते हुए अपडेट होता है, बस परिणाम दिखने से पहले डिबाउंस ज़्यादा होता है।
- विनाशकारी बैकट्रैकिंग टैब को जमा सकती है: JavaScript रेगुलर एक्सप्रेशन सिंक्रोनस चलता है और रोका नहीं जा सकता, इसलिए कोई टाइमआउट नहीं है। भरोसेमंद न पैटर्न और न बहुत बड़े टेक्स्ट पेस्ट करें।
- u के साथ भी \w, \b और \d सिर्फ़ ASCII हैं — चीनी या अरबी अक्षरों के लिए \p{L} और u फ़्लैग इस्तेमाल करें। u के बिना \p{L} त्रुटि नहीं देता: वह चुपचाप लिटरल मैच में बदल जाता है।
- i Unicode सिंपल केस फ़ोल्डिंग इस्तेमाल करता है, लोकेल नियम नहीं: तुर्की İ और i आपस में नहीं मिलते, और ß, SS में नहीं बदलता।
- रेंज 0-आधारित, अंत-अनन्य UTF-16 ऑफ़सेट हैं, इसलिए एक इमोजी दो गिना जाता है। जो ग्रुप शामिल नहीं हुआ वह — दिखता है; जो खाली स्ट्रिंग से मैच हुआ वह खाली दिखता है।
- शून्य-लंबाई वाले मैच (\b, a*, (?=x)) पतले मार्कर के रूप में दिखते हैं और उनकी रेंज n–n पढ़ी जाती है।
- कॉपी और डाउनलोड में सिर्फ़ मैच किए मान आते हैं, हर पंक्ति में एक, बिना नंबर, रेंज या ग्रुप के। इसलिए लाइन ब्रेक वाला मैच कई पंक्तियों में फैलता है।
- कोई सब्स्टिट्यूशन प्रीव्यू, कोड जनरेटर, परमालिंक या सहेजा पैटर्न नहीं: पैटर्न इनपुट बॉक्स से कभी बाहर नहीं जाता और URL में नहीं पहुँचता।
संबंधित टूल
पैटर्न सही चलने लगे, तो आगे आमतौर पर यही करना होता है।