Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

मुख्य सामग्री पर जाएं
Gizke.com
ब्लॉग

रेगेक्स टेस्टर

आपके डिवाइस पर चलता है। कुछ भी नहीं भेजा जाता।

फ़्लैग

सामान्य पैटर्न

टेस्ट स्ट्रिंग

कोई मैच नहीं मिला

व्याख्या

प्रत्येक भाग क्या करता है यह देखने के लिए ऊपर एक पैटर्न टाइप करें

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

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

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

यह किस रेगेक्स प्रकार का उपयोग करता है?
JavaScript का बिल्ट-इन रेगेक्स इंजन (जो RegExp और String.prototype.match/replace के पीछे है), क्योंकि यहाँ सब कुछ सर्वर के बजाय आपके ब्राउज़र में क्लाइंट-साइड पर चलता है। यह PCRE के बहुत करीब है लेकिन इसमें कुछ अंतर हैं - उदाहरण के लिए, lookbehind समर्थन इंजन संस्करण पर निर्भर करता है, और नामित समूह (?<नाम>...) सिंटैक्स का उपयोग करते हैं।
मेरा पैटर्न केवल एक बार ही क्यों मेल खाता है?
डिफ़ॉल्ट रूप से, g (ग्लोबल) फ़्लैग के बिना, एक रेगेक्स अपने पहले मैच के बाद रुक जाता है - यह दर्शाता है कि JavaScript में RegExp.exec() और String.match() वास्तव में कैसे व्यवहार करते हैं। केवल पहले के बजाय टेस्ट स्ट्रिंग में हर मैच खोजने के लिए ऊपर g फ़्लैग सक्षम करें।
(...) और (?:...) में क्या अंतर है?
दोनों पैटर्न के हिस्सों को एक साथ समूहित करते हैं, लेकिन केवल (...) - एक कैप्चर समूह - जो मेल खाया उसे सहेजता है ताकि आप बाद में उसका संदर्भ ले सकें (प्रतिस्थापन में $1, $2, ... के रूप में, या मैच की समूह सूची में)। (?:...) एक गैर-कैप्चर समूह है: यह मैच को सुरक्षित रखे बिना समूहीकरण करता है और मात्रा सूचक लागू करता है, जो तब उपयोगी है जब आपको समूहीकरण चाहिए लेकिन कैप्चर किए गए टेक्स्ट की परवाह नहीं है।
नामित समूह और $<नाम> प्रतिस्थापन कैसे काम करते हैं?
केवल संख्या के बजाय किसी नाम के तहत एक समूह को कैप्चर करने के लिए (...) के बजाय (?<नाम>...) लिखें। प्रतिस्थापन मोड में, प्रतिस्थापन टेक्स्ट में इसे $<नाम> के रूप में संदर्भित करें - उदाहरण के लिए, (?<year>\d{4})-(?<month>\d{2}) को $<month>/$<year> से बदलने पर समूह संख्याओं को याद रखे बिना एक तारीख को पुनर्व्यवस्थित किया जा सकता है।
+ बनाम +? जैसे लालची (greedy) और आलसी (lazy) क्वांटिफायर में क्या अंतर है?
एक लालची क्वांटिफायर (+, *, {2,4}) जितना संभव हो उतना मैच करता है, फिर पैटर्न के बाकी हिस्से को मैच होने देने के लिए ज़रूरत पड़ने पर ही पीछे हटता है। वही चिन्ह उसके बाद ? के साथ एक आलसी क्वांटिफायर बन जाता है, जो इसके विपरीत जितना कम संभव हो उतना मैच करता है, और ज़रूरत पड़ने पर ही एक बार में एक अक्षर बढ़ाता है। उदाहरण के लिए, <a><b> के मुकाबले <.+> लालचीपन से पूरे <a><b> से मैच करता है, जबकि <.+?> आलस्य से केवल <a> से मैच करता है।
अगर लुकअहेड और लुकबिहाइंड कोई अक्षर उपयोग नहीं करते, तो वे वास्तव में क्या जांचते हैं?
वे यह जांचते हैं कि क्या कोई पैटर्न वर्तमान स्थिति से ठीक पहले या बाद में दिखाई देता है, बिना उसे मैच में शामिल किए - इसलिए (?=...) और (?<=...) आगे/पीछे यह जांचते हैं कि कुछ मौजूद होना ही चाहिए, जबकि (?!...) और (?<!...) यह जांचते हैं कि वह मौजूद नहीं होना चाहिए। इसीलिए आप किसी संख्या को केवल तभी मैच करने के लिए \d+(?=px) का उपयोग कर सकते हैं जब उसके बाद 'px' आता हो, जबकि 'px' खुद मैच हुए टेक्स्ट में कभी दिखाई नहीं देता।
डेवलपर्स के लिए: इस पेज को URL में `q` (पैटर्न) और `text` (परीक्षण टेक्स्ट) पैरामीटर के साथ खोलें - जैसे gizke.com/regex?q=\d+&text=There are 42 apples - और दोनों अपने आप पहले से भर जाएंगे। अधिकांश विज़िटर्स को इसकी ज़रूरत नहीं होगी; यह किसी तैयार उदाहरण से सीधे लिंक करने के लिए है।

इस टूल को शेयर करें

ब्लॉगहमारे बारे मेंसंपर्कउपयोग की शर्तेंगोपनीयता नीति