इसका इस्तेमाल कैसे करें
- स्लैश के बिना पैटर्न पैटर्न में लिखें। उदाहरण 2026-11-10 जैसी लिखी तारीखें खोजता है।
- जरूरत के फ़्लैग चुनें। g हर मिलान खोजता है, i बड़े-छोटे अक्षर को अनदेखा करता है, और m व s लाइन ब्रेक पढ़ने का तरीका बदलते हैं।
- अपना परीक्षण टेक्स्ट चिपकाएँ। मिलान तुरंत उजागर होते हैं, और टेक्स्ट के नीचे की सूची हर एक की स्थिति और ग्रुप बताती है।
- इससे बदलें में कोई टेक्स्ट लिखें ताकि बदलने का परिणाम दिखे, फिर उसे लेने के लिए कॉपी दबाएँ।
यहाँ मिलान कैसे होता है
पेज आपके ब्राउज़र में बने रेगुलर एक्सप्रेशन इंजन का इस्तेमाल करता है, वही जो JavaScript करती है। मिलान टेक्स्ट की शुरुआत से क्रम में मिलते हैं। दिखाई गई स्थिति वे अक्षर हैं जो मिलान से पहले आते हैं, 0 से गिने हुए, और UTF-16 इकाइयों में, जैसे JavaScript टेक्स्ट गिनती है।
खोज आपके ब्राउज़र के बैकग्राउंड वर्कर में चलती है, ताकि पेज चलता रहे। 10,000 मिलानों के बाद खोज रुकती है, और 2,00,000 अक्षरों से लंबा टेक्स्ट नहीं खोजा जाता। ऐसा पैटर्न जो कुछ भी न मिला सके, जैसे x*, हर खाली मिलान के बाद एक अक्षर आगे बढ़ता है, ताकि खोज हमेशा खत्म हो। 2 सेकंड से ज्यादा चलने वाली खोज रोक दी जाती है; देखें विनाशकारी बैकट्रैकिंग वाला हिस्सा।
- g फ़्लैग के बिना सिर्फ पहला मिलान दिखता है, जैसे String.match() करता है।
- u फ़्लैग इमोजी या बेसिक प्लेन के बाहर के किसी भी अक्षर को एक अक्षर के रूप में पढ़ता है।
- d फ़्लैग सूची में हर ग्रुप की शुरुआत और अंत भी जोड़ता है।
विनाशकारी बैकट्रैकिंग और 2 सेकंड की सीमा
रेगुलर एक्सप्रेशन इंजन पैटर्न के मिलने के तरीके एक के बाद एक आजमाता है। कुछ पैटर्न में, ज्यादातर एक दोहराए जाने वाले ग्रुप के भीतर दूसरा दोहराया जाने वाला ग्रुप, जैसे (a+)+, तरीकों की संख्या बहुत तेजी से बढ़ती है: हर अतिरिक्त अक्षर काम को दोगुना कर सकता है। यह तब सबसे ज्यादा होता है जब टेक्स्ट लगभग मेल खाता है और सिर्फ आखिर में फेल होता है।
उदाहरण के लिए, पैटर्न (a+)+$ ऐसे टेक्स्ट पर जिसमें बहुत से a अक्षर हों और उसके बाद एक विस्मय चिह्न, कभी मेल नहीं खा सकता, क्योंकि $ को टेक्स्ट का अंत चाहिए। फिर भी इंजन हार मानने से पहले अक्षरों को बाँटने के हर तरीके को आजमाता है। लगभग 26 अक्षरों पर खोज एक सेकंड या उससे ज्यादा ले सकती है, और हर अक्षर उसे और धीमा करता है। समय आपके डिवाइस पर निर्भर करता है।
यह पेज हर खोज को बैकग्राउंड वर्कर में चलाता है और 2 सेकंड पर रोक देता है, और एक संदेश दिखाता है। बाकी पेज चलता रहता है, इसलिए आप पैटर्न या टेक्स्ट बदलकर फिर कोशिश कर सकते हैं।
- एक ही अक्षरों पर एक दोहराव के भीतर दूसरा दोहराव न रखें: (a+)+$ की जगह (a+)$ लिखें। उसी टेक्स्ट पर सुरक्षित पैटर्न तुरंत खत्म होता है।
- सटीक रहें: ग्रुप के भीतर बिंदु की जगह [a-z] या \d+ लिखें, ताकि मिलान के हिस्से कई तरीकों से एक दूसरे पर न पड़ें।
- पैटर्न को पहले टेक्स्ट के छोटे नमूने पर जाँचें, फिर पूरे टेक्स्ट पर।
- जहाँ हो सके पैटर्न को बाँधें: शुरुआत में ^ और अंत में $ इंजन को हर शुरुआती बिंदु आजमाने से रोकते हैं।
बदलने के पैटर्न
बदलने वाला टेक्स्ट JavaScript के String.replace() के नियमों का पालन करता है। डॉलर चिह्न एक कोड शुरू करता है, जिसकी जगह मिलान का टेक्स्ट आता है:
| आप लिखते हैं | इसकी जगह आता है |
|---|---|
| $1, $2 और आगे | क्रमांकित ग्रुप का टेक्स्ट |
| $& | पूरा मिलान |
| $` | मिलान से पहले का टेक्स्ट |
| $' | मिलान के बाद का टेक्स्ट |
| $$ | एक एकल डॉलर चिह्न |
| डॉलर चिह्न, छोटे से चिह्न, ग्रुप का नाम और बड़े से चिह्न | नामित ग्रुप का टेक्स्ट |
PCRE और .NET से अंतर
PCRE (PHP और कई Linux टूल) या .NET (C#, Visual Basic) के लिए लिखा पैटर्न आम तौर पर यहाँ चलता है, पर कुछ सुविधाएँ सिर्फ एक इंजन में होती हैं। तालिका सबसे जरूरी सुविधाएँ दिखाती है।
| सुविधा | JavaScript (यह पेज) | PCRE और .NET |
|---|---|---|
| एटॉमिक ग्रुप और पज़ेसिव क्वांटिफ़ायर | उपलब्ध नहीं | PCRE और .NET में एटॉमिक ग्रुप; PCRE में a++ जैसे पज़ेसिव क्वांटिफ़ायर |
| \A, \Z और \z एंकर | उपलब्ध नहीं: ^ और $ इस्तेमाल करें | उपलब्ध |
| (?P<…>) से लिखा नामित ग्रुप | उपलब्ध नहीं | PCRE में उपलब्ध |
| पैटर्न के भीतर (?i) जैसा इनलाइन विकल्प | उपलब्ध नहीं: उसकी जगह फ़्लैग चुनें | .NET में उपलब्ध |
| \K से मिलान के बाहर टेक्स्ट रखना | उपलब्ध नहीं | PCRE में उपलब्ध |
| नामित ग्रुप से बदलना | डॉलर चिह्न, छोटा चिह्न, नाम, बड़ा चिह्न | .NET में डॉलर चिह्न, ब्रेस, नाम, ब्रेस |
हल किया हुआ उदाहरण: एक टेक्स्ट में तीन तारीखें
नमूना पैटर्न में तीन नामित ग्रुप हैं: वर्ष के लिए चार अंक, और महीने व दिन के लिए दो-दो अंक, जो डैश से अलग हैं। टेक्स्ट में तीन तारीखें हैं, और वे स्थिति 14, 34 और 50 पर मिलती हैं, पहले अक्षर से 0 गिनते हुए।
बदलने के लिए दिन, महीना और वर्ष को तीन ग्रुप नामों के रूप में लिखा गया है (डॉलर चिह्न, और हर नाम छोटे और बड़े से चिह्न के बीच), तो तीनों तारीखें 10.11.2026, 03.12.2026 और 15.01.2027 बन जाती हैं। परिणाम है: Invoice dated 10.11.2026, paid on 03.12.2026. Due 15.01.2027.
अक्सर पूछे जाने वाले सवाल
यह टेस्टर कौन सा रेगुलर एक्सप्रेशन रूप इस्तेमाल करता है?
यह आपके ब्राउज़र में बने JavaScript इंजन का इस्तेमाल करता है। खोजने, जाँचने और टेक्स्ट साफ करने के ज्यादातर पैटर्न JavaScript, PCRE और .NET में एक जैसे चलते हैं, पर कुछ सुविधाएँ अलग हैं, जैसा अंतर वाला हिस्सा बताता है।
सूची 10,000 मिलानों पर क्यों रुकती है?
मिलान क्रम से जमा होते हैं। बहुत लंबी सूची बनाने में धीमी और पढ़ने में बहुत लंबी होती, इसलिए जब पैटर्न ज्यादा बार मिलता है, तो पहले 10,000 मिलान दिखते हैं और पेज बताता है कि खोज रुक गई।
2,00,000 अक्षरों से लंबा टेक्स्ट क्यों मना कर दिया जाता है?
बहुत लंबा टेक्स्ट पेज को धीमा करता है, और उस पर पैटर्न में लंबा समय लग सकता है। पहले टेक्स्ट के एक हिस्से पर पैटर्न जाँचें, फिर बाकी पर, या टेक्स्ट को छोटे टुकड़ों में बाँटें।
हाइलाइट कुछ मिलान क्यों छोड़ देता है?
बिना अक्षर वाला मिलान, जैसे वह खाली जगह जिसे x* अक्षरों के बीच पाता है, उजागर करने के लिए कुछ नहीं रखता। वह अपनी स्थिति के साथ सूची में रहता है, इसलिए आप अब भी देख सकते हैं कि वह कहाँ है।
क्या यह टेस्टर मेरा टेक्स्ट किसी सर्वर को भेजता है?
नहीं। मिलान आपके ब्राउज़र में चलता है, और पेज आपका लिखा न सहेजता है, न कहीं भेजता है। पेज बंद करने पर वह मिट जाता है।
अवैध पैटर्न वाले संदेश का क्या मतलब है?
पैटर्न JavaScript के रेगुलर एक्सप्रेशन के रूप में नहीं पढ़ा जा सकता। यह संदेश इंजन से अंग्रेजी में आता है, और समस्या का नाम बताता है, जैसे कोई ब्रैकेट जो कभी बंद नहीं होता।
क्या यहाँ PCRE या .NET के लिए लिखा पैटर्न जाँचा जा सकता है?
अक्सर हाँ, जब उसमें आम सुविधाएँ हों। अगर उसमें एटॉमिक ग्रुप, पज़ेसिव क्वांटिफ़ायर, \A या \z, या इनलाइन विकल्प हो, तो पहले वह हिस्सा JavaScript के लिए लिखें; तालिका बताती है कि ये सुविधाएँ कौन सी हैं।
पेज यह क्यों कहता है कि पैटर्न में बहुत समय लगा?
इस टेक्स्ट पर खोज 2 सेकंड में पूरी नहीं हुई, इसलिए पेज ने उसे रोक दिया। आम तौर पर इसका मतलब है कि किसी दोहराव के भीतर दूसरा दोहराव है, जैसे (a+)+, और टेक्स्ट लगभग मेल खाता है। विनाशकारी बैकट्रैकिंग वाला हिस्सा एक सुरक्षित रूप दिखाता है।
स्रोत
- MDN (अंग्रेजी में): Regular expressions in JavaScript, including flags and groups
- MDN (अंग्रेजी में): String.prototype.replace(), the replacement patterns
- PCRE2 (अंग्रेजी में): pattern syntax, PCRE दस्तावेज
- Microsoft (अंग्रेजी में): .NET regular expression language quick reference
आँकड़े और टेक्स्ट आखिरी बार मंगलवार, 10 नवंबर 2026 को जाँचे गए।