रेगेक्स टेस्टर
सभी फ़्लैग (g i m s u y d) के साथ JavaScript रेगेक्स को लाइव परखें: हाइलाइट किए मिलान, कैप्चर और नेम्ड ग्रुप, इंडेक्स और रिप्लेस प्रीव्यू। हैंग-प्रूफ़ वर्कर।
बैकग्राउंड वर्कर में आपके ब्राउज़र का JavaScript (ECMAScript) रेगेक्स इंजन इस्तेमाल होता है। PCRE/Python के possessive क्वांटिफ़ायर या इनलाइन (?i) मॉडिफ़ायर जैसे सिंटैक्स शायद काम न करें।
रेगेक्स टेस्टर क्या है?
यह आपके टाइप करते समय आपके टेक्स्ट पर JavaScript रेगुलर एक्सप्रेशन परखता है। मिलान हाइलाइट होते हैं, एक तालिका हर मिलान को उसकी स्थिति, क्रमांकित और नेम्ड कैप्चर ग्रुप (और d फ़्लैग के साथ ग्रुप इंडेक्स) के साथ दिखाती है, और वैकल्पिक रिप्लेसमेंट प्रीव्यू String.replace का नतीजा दिखाता है। पैटर्न बैकग्राउंड वर्कर में चलते हैं जिसे 1.5 सेकंड बाद रोक दिया जाता है, इसलिए विनाशकारी पैटर्न पेज को फ़्रीज़ नहीं कर सकते।
रेगेक्स टेस्टर का उपयोग कैसे करें
- रेगुलर एक्सप्रेशन में पैटर्न (स्लैश के बिना) डालें।
- ज़रूरी फ़्लैग चुनें: g, i, m, s, u, y, d।
- खोजने का टेक्स्ट टेस्ट स्ट्रिंग में पेस्ट करें – मिलान अपने-आप अपडेट होते हैं।
- नतीजे का प्रीव्यू देखने के लिए मिलानों को इससे बदलें… चुनें और रिप्लेसमेंट ($1, $<name>, $& …के साथ) टाइप करें।
उदाहरण
फ़्लैग g के साथ पैटर्न (?<y>\d{4})-(\d{2}), टेक्स्ट "a 2024-05 b 1999-12", रिप्लेसमेंट $2/$<y> 2 match(es) · replaced: a 05/2024 b 12/1999
रेगेक्स टेस्टर का उपयोग कब करें
JavaScript, TypeScript और Node.js के रेगेक्स, वैलिडेशन नियम और सर्च-एंड-रिप्लेस बनाने और डिबग करने के लिए इसका उपयोग करें। दूसरे इंजन (PCRE, Python, Java, .NET, POSIX) सिंटैक्स और सुविधाओं में अलग हैं – जैसे पज़ेसिव क्वांटिफ़ायर, (?i) जैसे इनलाइन मॉडिफ़ायर और \A/\Z एंकर उपलब्ध नहीं हैं – इसलिए उन्हें लक्ष्य बनाते समय वहाँ भी परखें।
रेगेक्स टेस्टर कैसे काम करता है
पैटर्न एक Web Worker के भीतर new RegExp(pattern, flags) से कंपाइल होता है। g या y के साथ टूल exec() पर लूप करता है और अधिकतम 1,000 मिलान इकट्ठा करता है (अनंत लूप से बचने के लिए ख़ाली मिलान एक कोड पॉइंट आगे बढ़ते हैं); इनके बिना केवल पहला मिलान बताया जाता है, ठीक JavaScript की तरह। हर मिलान अपना शुरुआती और अंतिम इंडेक्स, कैप्चर ग्रुप, नेम्ड ग्रुप और, d फ़्लैग के साथ, हर ग्रुप के indices दर्ज करता है। रिप्लेसमेंट प्रीव्यू text.replace(regex, replacement) चलाता है। अगर वर्कर 1,500 ms में जवाब न दे तो उसे बंद कर दिया जाता है और टाइमआउट संदेश दिखता है।
सामान्य उपयोग मामले
- फ़ॉर्म इनपुट के वैलिडेशन पैटर्न को डिबग करना
- नेम्ड कैप्चर ग्रुप से डेटा निकालना
- फ़ाइलों पर चलाने से पहले सर्च-एंड-रिप्लेस का प्रीव्यू देखना
- सीखना कि m, s और u जैसे फ़्लैग मिलान कैसे बदलते हैं
- पैटर्न में विनाशकारी बैकट्रैकिंग जाँचना
अक्सर पूछे जाने वाले प्रश्न
मेरा रेगेक्स केवल पहला मिलान क्यों खोजता है?
g (ग्लोबल) फ़्लैग के बिना JavaScript पहले मिलान के बाद रुक जाता है। सभी मिलान सूचीबद्ध करने के लिए g चुनें।
d फ़्लैग क्या करता है?
यह हर मिलान में indices जोड़ता है, जो हर कैप्चर ग्रुप की शुरुआती और अंतिम स्थिति देता है। टूल उन्हें हर ग्रुप के बगल में दिखाता है।
(a+)+$ जैसे विनाशकारी पैटर्न के साथ क्या होता है?
उसे चलाने वाले वर्कर को 1.5 सेकंड बाद बंद कर दिया जाता है और फ़्रीज़ हुए टैब की जगह आपको टाइमआउट संदेश दिखता है।
क्या यह PCRE या Python regex के साथ संगत है?
बुनियादी सिंटैक्स के लिए ज़्यादातर, पर पूरी तरह नहीं। यह आपके ब्राउज़र का ECMAScript इंजन इस्तेमाल करता है।