रेगेक्स टेस्टर
रेगुलर एक्सप्रेशन को लाइव जाँचें — मिलान हाइलाइट, समूह और प्रतिस्थापन
\d \w \sअंक, शब्द-वर्ण, रिक्त स्थान^ $ \bआरंभ, अंत, शब्द सीमा* + ? {n,m}0+, 1+, वैकल्पिक, परास(…) (?:…) (?<name>…)कैप्चर, गैर-कैप्चर, नामित[abc] [^abc] [a-z]इनमें से एक, कोई नहीं, परासa|b (?=…) (?!…)विकल्प, अग्र-दृष्टिविनाशकारी बैकट्रैकिंग — नियंत्रित रूप में
(a+)+$ जैसे नेस्टेड क्वांटिफायर्स एक मैचर को एक्सपोनेंशियल रूप से कई पाथ्स की खोज करने के लिए मजबूर कर सकते हैं — यह क्लासिक ReDoS ट्रैप है:
- यह टेस्टर आपके पैटर्न को एक स्टेप बजट के साथ वर्कर में लपेटता है; अनियंत्रित मैच को अबॉर्ट कर दिया जाता है और रिपोर्ट किया जाता है, बजाय टैब को फ्रीज करने के।
- यदि आपको कोई अबॉर्ट दिखाई देता है, तो यह पैटर्न प्रोडक्शन में भी खतरनाक है — कोई भी सर्वर टाइमआउट क्वाड्रैटिक इंजन लूप को ठीक नहीं कर सकता।
- जो फिक्स आमतौर पर काम करते हैं: आंतरिक ग्रुप्स को अस्पष्ट न रखें, दोनों छोरों को एंकर करें, ग्रीडी नेस्टिंग को कैरेक्टर क्लासेज़ से बदलें।
यह टेस्टर पैटर्न्स को सुरक्षित रूप से कैसे चलाता है
लाइव मैच हाइलाइटिंग
पैटर्न, टेस्ट स्ट्रिंग और रिप्लेसमेंट टाइप करते ही अपडेट होते हैं: मैच बारी-बारी से रंगों में चमकते हैं, गिनती ताज़ा होती है, और रिप्लेस प्रीव्यू $1 और $<name> जैसे नामित समूह सिंटैक्स लागू करता है।
स्थान के साथ समूह
हर मैच क्रमांकित और नामित कैप्चर समूहों में उनके मान और वर्ण स्थानों के साथ खुलता है, जिससे साफ़ पता चलता है कि पैटर्न के किस हिस्से ने क्या कैप्चर किया।
फ़्लैग, लाइब्रेरी, रेफ़रेंस
g, i, m, s, u और y फ़्लैग एक क्लिक पर हैं; छह तैयार पैटर्न ईमेल, URL, IPv4, तारीख़ें, हेक्स रंग और फ़ोन नंबर कवर करते हैं; और सिंटैक्स रेफ़रेंस एंकर, क्वांटिफ़ायर, समूह और लुकअराउंड समझाता है।
अक्सर पूछे जाने वाले प्रश्न
यह किस रेगेक्स शैली का उपयोग करता है?
आपके ब्राउज़र में निर्मित JavaScript (ECMAScript) इंजन। अधिकांश सिंटैक्स PCRE के समान है, पर कुछ भिन्न हैं — जैसे कोई अधिकारात्मक क्वांटिफ़ायर नहीं, और लुकबिहाइंड के लिए आधुनिक ब्राउज़र चाहिए। यहाँ परखे गए पैटर्न JS कोड में बिल्कुल वैसा ही व्यवहार करेंगे।
क्या मेरा पाठ कहीं भेजा जाता है?
नहीं। मिलान, समूहन और प्रतिस्थापन सभी आपके ब्राउज़र के मूल RegExp से स्थानीय रूप से चलते हैं, इसलिए आपके पैटर्न व परीक्षण डेटा पृष्ठ से बाहर नहीं जाते। यह ऑफ़लाइन भी काम करता है।
क्या रेगेक्स पृष्ठ को फ्रीज़ कर सकता है?
एक विकृत पैटर्न (विनाशकारी बैकट्रैकिंग) धीमा हो सकता है, पर केवल आपके ही टैब में। हम शून्य-चौड़ाई मिलान से आगे बढ़ते हैं और परिणाम 10,000 पर सीमित करते हैं ताकि UI उत्तरदायी रहे। लंबे इनपुट पर (a+)+ जैसे नेस्टेड क्वांटिफ़ायर के बजाय विशिष्ट पैटर्न पसंद करें।
मेरा पैटर्न कुछ इनपुट्स पर क्यों हैंग हो जाता है, जबकि अन्य पर नहीं?
बैकट्रैकिंग की लागत इनपुट के आकार पर निर्भर करती है, केवल लंबाई पर नहीं: <code>aaaa...b</code> के खिलाफ <code>(a+)+b</code> का मामला फट जाता है, जबकि <code>aab</code> तुरंत समाप्त हो जाता है। हमलावर ठीक उन्हीं असामान्य स्ट्रिंग्स को बनाते हैं, इसलिए किसी भी उपयोगकर्ता-अभिमुखी रेगुलर एक्सप्रेशन को शिप करने से पहले लंबी, एक ही अक्षर की श्रृंखला के साथ परीक्षण करें।
संबंधित टूल
रेगुलर एक्सप्रेशन टेस्टर क्या है?
रेगुलर एक्सप्रेशन — टेक्स्ट खोजने और बदलने के पैटर्न — प्रोग्रामिंग के सबसे शक्तिशाली और साथ ही सबसे ग़लती-भरे औज़ारों में से हैं। एक बैकस्लैश की जगह बदलते ही मैच बदल जाता है, और कागज़ पर सही लगने वाला पैटर्न असली डेटा के सामने अक्सर हैरान करता है। यह टेस्टर लाइव दिखाता है कि पैटर्न वास्तव में क्या कर रहा है: टेस्ट टेक्स्ट में हर मैच हाइलाइट होता है, क्रमांकित और नामित कैप्चर ग्रुप अपनी पोज़िशन के साथ अलग-अलग दिखते हैं, और $1 या $
यह टूल क्या कर सकता है
- 🔦 टाइप करते ही हर मैच को लाइव हाइलाइट करना
- 🧩 क्रमांकित और नामित कैप्चर ग्रुप को पोज़िशन के साथ दिखाना
- 🔁 $1 / $
सिंटैक्स से रिप्लेस प्रीव्यू - 🚩 फ़्लैग: g, i, m, s, u, y
- 📚 पैटर्न लाइब्रेरी: ईमेल, URL, IPv4, तारीख, रंग, फ़ोन
- 📖 सिंटैक्स रेफ़रेंस टेबल साथ में
इसका उपयोग कब करें
- फ़ॉर्म फ़ील्ड के लिए वैलिडेशन पैटर्न लिखते समय
- रेगेक्स ज़्यादा या कम मैच कर रहा हो, इसकी वजह खोजते समय
- कैप्चर ग्रुप पर निर्भर टेक्स्ट-प्रोसेसिंग स्क्रिप्ट बनाते समय
- समुदाय का पैटर्न इस्तेमाल करने से पहले उसे जाँचते समय
गोपनीयता: पैटर्न और टेस्ट टेक्स्ट पूरी तरह आपके ब्राउज़र में मूल्यांकित होते हैं — कुछ अपलोड या लॉग नहीं होता। मुफ़्त।