इस्तेमाल करने का तरीका
- Pattern फ़ील्ड में regular expression दर्ज करें; उसके आगे-पीछे slash न लगाएँ।
- ज़रूरी flags चुनें। g (global) केवल पहला match खोजने के बजाय सभी matches खोजता है।
- खोजने के लिए टेक्स्ट पेस्ट करें। Matches हाइलाइट किए जाएँगे और हर match को उसके index और capture groups के साथ सूचीबद्ध किया जाएगा।
- वैकल्पिक रूप से, नतीजे का preview देखने के लिए $2-$1 जैसा replacement दर्ज करें, जैसा String.replace में होता है।
यह कैसे काम करता है
यह टेस्टर आपके पैटर्न को ब्राउज़र के पहले से मौजूद RegExp ऑब्जेक्ट से चलाता है, इसलिए नतीजे ठीक वही होते हैं जो उस ब्राउज़र में JavaScript (ECMAScript) कोड से मिलेंगे। दूसरी भाषाओं में regex के अलग-अलग रूप होते हैं: PCRE (PHP), Python का re मॉड्यूल, Java और .NET में JavaScript में न होने वाली सुविधाएँ मिलती हैं, जैसे possessive quantifiers (a++), atomic groups ((?>…)), (?i) जैसे inline modifiers और recursion। साथ ही, \A और \Z जैसे anchors के व्यवहार में भी अंतर होता है। किसी पैटर्न पर वहाँ भरोसा करने से पहले उसे उसी भाषा में जाँचें। Lookbehind ((?<=…)), named groups ((?<name>…)) और Unicode property escapes (\p{L}, u flag के साथ) सभी मौजूदा ब्राउज़र में काम करते हैं।
g या y flag के बिना, RegExp.exec की तरह केवल पहला match मिलता है। ^ या \b से मिलने वाले zero-length matches सूची में दिखते हैं, लेकिन हाइलाइट नहीं होते; इनके बाद खोज एक अक्षर आगे से जारी रहती है (u flag के साथ एक code point आगे से), जैसा String.matchAll करता है। Capture groups संख्या के आधार पर और, जहाँ परिभाषित हों, नाम के आधार पर दिखाए जाते हैं। जो group match में शामिल नहीं होता, उसे बिना मान वाला दिखाया जाता है; यह खाली match से अलग है।
कुछ पैटर्न, जैसे बिना match वाली लंबी लाइन पर (a+)+$, विफल होने में घातांकीय समय ले सकते हैं (catastrophic backtracking)। जोखिम कम करने के लिए, आपके टाइप करना रोकने के थोड़ी देर बाद matching शुरू होती है, टेक्स्ट के केवल पहले 100,000 अक्षरों में खोज होती है और अधिकतम 1,000 matches इकट्ठा किए जाते हैं। फिर भी कोई असामान्य पैटर्न कुछ समय के लिए टैब को अनुत्तरदायी बना सकता है; ऐसा होने पर पैटर्न को सरल करें या टेक्स्ट छोटा करें।
उदाहरण
तारीखें निकालें
g flag चालू करके पैटर्न (\d{4})-(\d{2})-(\d{2}) को “Due 2026-03-15, paid 2026-04-02” पर चलाने से दो matches मिलते हैं। Group 1 वर्ष है; $3.$2.$1 replacement से टेक्स्ट “Due 15.03.2026, paid 02.04.2026” बन जाता है।
पढ़ने में आसान कोड के लिए नाम वाले groups
क्वेरी स्ट्रिंग a=1&b=two पर (?<key>\w+)=(?<value>[^&]*) चलाने से हर जोड़ी के key और value दिखते हैं। यह JavaScript में match.groups.key और match.groups.value से मिलने वाले नतीजों के अनुरूप है।
कई लाइनों में बड़े-छोटे अक्षरों को अनदेखा करके खोजें
g, i और m flags के साथ ^error:.* लॉग की उन सभी लाइनों से match करता है जो Error:, ERROR: या error: से शुरू होती हैं, क्योंकि m की वजह से ^ हर लाइन की शुरुआत पर match करता है।
अक्सर पूछे जाने वाले सवाल
क्या मेरा regex Python, PHP या Java में भी उसी तरह काम करेगा?
ज़रूरी नहीं। यह टूल JavaScript इंजन का उपयोग करता है। बुनियादी syntax समान है, लेकिन possessive quantifiers, atomic groups, (?i) जैसे inline flags और कुछ escape sequences जैसी सुविधाएँ केवल regex के दूसरे रूपों में मिलती हैं, और कुछ का व्यवहार अलग होता है। हमेशा लक्षित भाषा में जाँचें।
केवल एक match क्यों मिला?
g (global) flag बंद है। इसके बिना JavaScript केवल पहला match लौटाता है। सभी matches खोजने के लिए g चुनें।
क्या पैटर्न के आगे-पीछे slash टाइप करने चाहिए?
नहीं। केवल पैटर्न दर्ज करें, जैसे /\d+/g के बजाय \d+, और checkboxes से flags चुनें। कोड में कॉपी करने के लिए नतीजों के नीचे JavaScript literal का रूप दिखाया जाता है।
मेरे पैटर्न से पेज धीमा क्यों हो गया?
(a+)+ या (.*)* जैसे nested quantifiers, match न मिलने पर इंजन को घातांकीय संख्या में रास्ते आज़माने के लिए मजबूर कर सकते हैं। पैटर्न को अधिक विशिष्ट बनाएँ, उदाहरण के लिए .* की जगह [^,]* का उपयोग करें, या anchors लगाएँ। असर कम करने के लिए टेस्टर टेक्स्ट को 100,000 अक्षरों तक सीमित रखता है।
गोपनीयता
आपके पैटर्न और टेक्स्ट को केवल आपके ब्राउज़र के JavaScript इंजन में प्रोसेस किया जाता है। इन्हें अपलोड या सेव नहीं किया जाता और न ही analytics में शामिल किया जाता है।