टूल

निःशुल्क ऑनलाइन Regex परीक्षक

अपने ब्राउज़र में JavaScript रेगुलर एक्सप्रेशन टेस्ट और डीबग करें। लाइव हाइलाइट किए गए मैच देखें, कैप्चर ग्रुप्स की जांच करें, और रिप्लेसमेंट का प्रीव्यू लें। कुछ भी कभी सर्वर पर नहीं भेजा जाता।

फ्लैग्स
क्विक पैटर्न

मैच परिणाम

सारा मैचिंग आपके ब्राउज़र में ही स्थानीय रूप से होता है। आपके पैटर्न और टेक्स्ट कभी अपलोड, स्टोर या लॉग नहीं किए जाते।

रेगुलर एक्सप्रेशन क्या है?

एक रेगुलर एक्सप्रेशन (regex) वर्णों का एक क्रम है जो एक सर्च पैटर्न को परिभाषित करता है। एक तय स्ट्रिंग खोजने के बजाय, regex उस टेक्स्ट के आकार का वर्णन करता है जिसे आप चाहते हैं — अंक, शब्द, ईमेल पते, तारीखें, और भी बहुत कुछ। यह पैटर्न मैचिंग को डेवलपर्स, डेटा एनालिस्ट्स और सिसएडमिन के लिए सबसे शक्तिशाली टूल्स में से एक बनाता है, जो इनपुट सत्यापित करने, लॉग खोजने, और टेक्स्ट को तेज़ी और भरोसेमंद तरीके से बदलने के लिए इस पर हर दिन निर्भर रहते हैं।

JavaScript Regex फ्लैग्स की व्याख्या

g global — स्ट्रिंग में केवल पहला नहीं, बल्कि सभी मैच खोजता है।
i case-insensitive — अक्षर बड़े या छोटे केस की परवाह किए बिना मैच होते हैं।
m multiline — एंकर ^ और $ पूरी स्ट्रिंग के बजाय हर लाइन की शुरुआत और अंत से मैच करते हैं।
s dotAll — डॉट . न्यूलाइन वर्णों से भी मैच करता है।
u unicode — U+FFFF से ऊपर के कोड पॉइंट्स सहित पूर्ण यूनिकोड मैचिंग सक्षम करता है।

सामान्य Regex पैटर्न संदर्भ

पैटर्न Regex मैच
ईमेल /[^\s@]+@[^\s@]+\.[^\s@]+/ hello@charcount.app
URL /https?:\/\/[^\s]+/ https://charcount.app
IPv4 /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ 192.168.0.1
तारीख (YYYY-MM-DD) /\d{4}-\d{2}-\d{2}/ 2026-06-30
हेक्स कलर /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/ #4338ca
UUID v4 /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]…/i 9f1c…5b6c

Regex कैप्चर ग्रुप्स

कोष्ठक (parentheses) आपको मैच के हिस्सों को कैप्चर करने देते हैं ताकि आप उन्हें निकाल या दोबारा उपयोग कर सकें। इसके तीन प्रकार हैं:

  • ( ) — एक capturing group: जो मैच किया उसे स्टोर करता है, replacements में $1, $2, … के रूप में उपलब्ध।
  • (?: ) — एक non-capturing group: बिना स्टोर किए alternation या quantifiers के लिए पैटर्न को समूहित करता है।
  • (?<name> ) — एक named group: एक पठनीय नाम के साथ कैप्चर करता है, groups.name के रूप में उपलब्ध।

उदाहरण के लिए, तीन ग्रुप्स के साथ एक तारीख को पार्स करना: (\d{4})-(\d{2})-(\d{2})

अक्सर पूछे जाने वाले प्रश्न

.* लालची (greedy) है: यह जितना संभव हो उतना टेक्स्ट मैच करता है, फिर ज़रूरत पड़ने पर बैकट्रैक करता है। .*? आलसी (lazy/non-greedy) है: यह जितना कम संभव हो उतना मैच करता है और मजबूर होने पर ही बढ़ता है। उदाहरण के लिए, टेक्स्ट "<a><b>" के विरुद्ध, पैटर्न <.*> पूरे "<a><b>" से मैच करता है, जबकि <.*?> केवल "<a>" से मैच करता है। जब आपको सबसे छोटा संभव मैच चाहिए हो, जैसे अलग-अलग HTML टैग पार्स करना, तो lazy वर्ज़न का उपयोग करें।

. ( ) [ ] { } + * ? ^ $ | \ जैसे वर्णों का regex में विशेष अर्थ होता है, इसलिए उन्हें शाब्दिक रूप से मैच करने के लिए बैकस्लैश से escape करें। लिटरल डॉट के लिए \. लिखें, लिटरल open parenthesis के लिए \( लिखें, और लिटरल बैकस्लैश के लिए \\ लिखें। character class के अंदर, जैसे [.], इनमें से अधिकांश वर्ण अपना विशेष अर्थ खो देते हैं और उन्हें escape करने की ज़रूरत नहीं होती।

अधिकांश ऑनलाइन परीक्षक डिफ़ॉल्ट रूप से PCRE इंजन का उपयोग करते हैं, जबकि यह टूल और आपका ब्राउज़र JavaScript (ECMAScript) इंजन का उपयोग करते हैं, जिसमें कुछ फीचर्स नहीं होते। JavaScript पुराने इंजनों में lookbehind, possessive quantifiers, recursion, या (?i) जैसे इनलाइन फ्लैग्स को सपोर्ट नहीं करता। सुनिश्चित करें कि आपका परीक्षक JavaScript फ्लेवर पर सेट है ताकि व्यवहार वही हो जो आपका कोड वास्तव में करेगा।

g (global) फ्लैग regex को पहले मैच पर रुकने के बजाय स्ट्रिंग में हर मैच खोजने देता है। आपको इसकी ज़रूरत matchAll() या replaceAll() जैसे मेथड्स का उपयोग करते समय, या replace() से सभी occurrences बदलते समय होती है। g के बिना, replace() जैसे मेथड्स केवल पहला मैच बदलते हैं। ध्यान दें कि एक global regex lastIndex स्टेट बनाए रखता है, इसलिए लूप में exec() कॉल करते समय इसे सावधानी से दोबारा उपयोग करें।