← सभी टूल

Regex टेस्टर

ब्राउज़र में अपने टेक्स्ट पर लाइव Regular Expressions बनाएं, टेस्ट करें और डिबग करें। कैरेक्टर क्लास, क्वांटिफायर, एंकर, ग्रुप और फ्लैग जानें।

Regex टेस्टर: अपने ही टेक्स्ट के विरुद्ध पैटर्न बनाएँ और डीबग करें

एक रेगुलर एक्सप्रेशन टेक्स्ट के आकार का वर्णन करने वाली एक नन्ही भाषा है। "क्या यह ठीक यही शब्द यहाँ है?" पूछने के बजाय, एक regex आपको यह पूछने देता है कि "क्या कोई ऐसी स्ट्रिंग है जो इस जैसी दिखती है?" यही वह बात है जो इसे कोड एडिटर, लॉग फ़ाइलों, फ़ॉर्म इनपुट और स्क्रिप्ट में टेक्स्ट को ढूँढ़ने, वैलिडेट करने, निकालने और बदलने के लिए शक्तिशाली बनाती है। और यही वह बात भी है जो इसे ग़लत करना आसान बना देती है, क्योंकि जो पैटर्न आपके दिमाग़ में ठीक पढ़ने में आता है वह चुपचाप बहुत ज़्यादा, बहुत कम, या कुछ भी नहीं से मेल खा सकता है।

यही वजह है कि अंदाज़ा लगाने से बेहतर है इंटरैक्टिव ढंग से परखना। जब आप एक पैटर्न टाइप करते हैं और असली नमूना टेक्स्ट में मैच जगमगाते देखते हैं, तो आपको तुरंत प्रतिक्रिया मिलती है: आप देखते हैं कि क्या पकड़ा गया, क्या छूट गया, और किस कैप्चर समूह ने कौन-सा टुकड़ा थामा। हमारा Regex टेस्टर पूरी तरह आपके ब्राउज़र में चलता है। आपका पैटर्न और आपका नमूना टेक्स्ट कभी पृष्ठ से बाहर नहीं जाता, इसलिए आप लॉग पंक्तियाँ, ईमेल, या उत्पादन डेटा बिना कुछ किसी सर्वर पर भेजे पेस्ट कर सकते हैं।

गहरे इंडिगो पृष्ठभूमि पर डेटा की बहती धारा से विशिष्ट सुनहरे टोकन पकड़ता एक चमकता सायन फ़िल्टर
एक regex किसी फ़िल्टर की तरह काम करता है, केवल उन्हीं टोकन को चुनते हुए जो आपके पैटर्न से मेल खाते हैं।

जानने योग्य बुनियादी हिस्से

अधिकांश रोज़मर्रा के पैटर्न टुकड़ों के एक छोटे समूह से जुड़कर बनते हैं। इन्हें सीख लीजिए और आप जंगल में मिलने वाले अधिकांश regex को पढ़ सकेंगे।

कैरेक्टर क्लास अनुमत अक्षरों के एक समूह का वर्णन करती हैं। [aeiou] किसी एक स्वर से मेल खाता है, [0-9] एक अंक से, और [a-zA-Z] एक अक्षर से। कोष्ठक के भीतर एक कैरट समूह को नकार देता है, इसलिए [^0-9] का अर्थ है "कोई भी अक्षर जो अंक नहीं है।" संक्षेप टाइपिंग बचाते हैं: \d एक अंक है, \w एक शब्द-अक्षर है (अक्षर, अंक, अंडरस्कोर), \s व्हाइटस्पेस है, और बिंदु . लगभग किसी भी एकल अक्षर से मेल खाता है।

क्वांटिफ़ायर बताते हैं कि पिछला टुकड़ा कितनी बार दोहराया जा सकता है। * का अर्थ है शून्य या ज़्यादा, + का अर्थ है एक या ज़्यादा, और ? का अर्थ है शून्य या एक (वैकल्पिक)। सटीक गिनती के लिए, {3} का अर्थ है ठीक तीन और {2,4} का अर्थ है दो से चार। तो \d{4} चार-अंकीय वर्ष से मेल खाता है और colou?r दोनों वर्तनियों से।

एंकर एक पैटर्न को किसी अक्षर के बजाय किसी स्थिति पर टिका देते हैं। ^ टेक्स्ट के आरंभ से मेल खाता है, $ अंत से, और \b एक शब्द-सीमा को चिह्नित करता है। पैटर्न ^Error केवल उन्हीं पंक्तियों से मेल खाता है जो "Error" से शुरू होती हैं, और लॉग खंगालते समय आपको ठीक यही चाहिए।

समूह किसी पैटर्न के एक हिस्से को कोष्ठक में लपेट देते हैं, ताकि एक साथ कई अक्षरों पर एक क्वांटिफ़ायर लगाया जा सके और मिलान किए गए टेक्स्ट को दोबारा इस्तेमाल के लिए कैप्चर किया जा सके। (\d{4})-(\d{2})-(\d{2}) में हर समूह एक तारीख़ घटक कैप्चर करता है जिसे आप बाद में निकाल सकते हैं। पाइप के साथ अल्टरनेशन "या" जैसा काम करता है: cat|dog|fish तीनों शब्दों में से किसी एक से मेल खाता है।

वे पैटर्न जिन तक आप वाक़ई पहुँचेंगे

कुछ बार-बार आने वाले काम अधिकांश असली काम को ढक लेते हैं। कुछ ईमेल-जैसा पकड़ने के लिए, [\w.+-]+@[\w-]+\.[\w.-]+ एक व्यावहारिक शुरुआती बिंदु है; औपचारिक विनिर्देश के अनुसार पूरा ईमेल वैलिडेशन कुख्यात रूप से उलझा हुआ है, और उपयोगकर्ताओं को अस्वीकार करने के बजाय उम्मीदवारों को उजागर करने के लिए आमतौर पर एक ढीला पैटर्न ही सही फ़ैसला होता है।

संख्याओं के लिए, \d+ अंकों के सिलसिले पकड़ता है, जबकि -?\d+(\.\d+)? वैकल्पिक ऋणात्मक और दशमलव से मेल खाता है। आगे और पीछे का व्हाइटस्पेस हटाने के लिए, ^\s+|\s+$ से मिलान करें और इसे कुछ नहीं से बदल दें। दोहराए गए शब्द ढूँढ़ने के लिए, बैकरेफ़रेंस पैटर्न \b(\w+)\s+\1\b किसी शब्द के बाद स्वयं उसी से मेल खाता है, जहाँ \1 पहले कैप्चर किए गए समूह को वापस संदर्भित करता है।

गहरे नेवी पर सायन टेक्स्ट-जैसे कणों की बहती नदी के भीतर सुनहरे चमकते और हाइलाइट किए गए चुने हुए शब्द
लाइव हाइलाइटिंग ठीक-ठीक दिखाती है कि आपके टेक्स्ट के कौन-से हिस्से किसी पैटर्न से मेल खाते हैं।

फ़्लैग मिलान के व्यवहार को बदल देते हैं

फ़्लैग ऐसे स्विच हैं जो पूरे पैटर्न को संशोधित करते हैं। ग्लोबल फ़्लैग (g) पहले मैच पर रुकने के बजाय हर मैच ढूँढ़ता है, और जब आप सभी उपस्थितियाँ हाइलाइट करना चाहते हों तो आपको यही चाहिए। केस-इनसेंसिटिव फ़्लैग (i) error को "Error" और "ERROR" दोनों से मेल खिला देता है। मल्टीलाइन फ़्लैग (m) ^ और $ को इस तरह बदल देता है कि वे पूरे टेक्स्ट के बजाय हर पंक्ति के आरंभ और अंत से मेल खाएँ, जो पंक्ति-दर-पंक्ति लॉग काम के लिए ज़रूरी है। अन्य उपयोगी फ़्लैग में s (डॉटऑल, जो बिंदु को न्यूलाइन से मेल खिलाता है) और पूर्ण यूनिकोड सँभालने के लिए u शामिल हैं।

भाषा के अनुसार किस्में थोड़ी भिन्न होती हैं

Regex बोलियों का एक परिवार है, कोई एक तय मानक नहीं। JavaScript, Python, PCRE (PHP), Java, .NET, Go और Rust ऊपर दिए गए मूल सिंटैक्स पर सहमत हैं, पर वे किनारों पर अलग हो जाते हैं: लुकबिहाइंड समर्थन, नामित-समूह सिंटैक्स ((?<name>...) बनाम (?P<name>...)), यूनिकोड प्रॉपर्टी एस्केप, और कौन-से फ़्लैग मौजूद हैं — सब अलग-अलग होते हैं। एक इंजन में काम करने वाले पैटर्न को दूसरे में एक छोटे फेरबदल की ज़रूरत पड़ सकती है, इसलिए जिस किस्म के साथ आप वाक़ई शिप करते हैं उसके विरुद्ध परखना फ़ायदेमंद है। जब आपका पैटर्न तैयार हो जाए, तो हमारे अन्य डेवलपर टूल और टेक्स्ट टूल आपके अभी मिलाए गए डेटा को साफ़ करने, एन्कोड करने और रूपांतरित करने के आसपास के काम में मदद कर सकते हैं।

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

क्या मेरा टेक्स्ट किसी सर्वर पर भेजा जाता है?

नहीं। Regex टेस्टर पूरी तरह आपके ब्राउज़र में चलता है। आपका पैटर्न और नमूना टेक्स्ट आपके डिवाइस पर ही रहते हैं और कभी अपलोड नहीं होते, इसलिए संवेदनशील डेटा पेस्ट करना सुरक्षित है।

यह टूल कौन-सी regex किस्म इस्तेमाल करता है?

यह आपके ब्राउज़र में निर्मित JavaScript regex इंजन का उपयोग करता है। मूल सिंटैक्स वही है जो आप अधिकांश भाषाओं से जानते हैं, हालाँकि कुछ उन्नत सुविधाएँ PCRE, Python या .NET से थोड़ी भिन्न होती हैं।

ग्रीडी और लेज़ी मिलान में क्या फ़र्क है?

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

मैं किसी शाब्दिक विशेष अक्षर से कैसे मेल खिलाऊँ?

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

मेरा पैटर्न किसी चीज़ से मेल क्यों नहीं खाता?

आम कारण हैं एक गुम ग्लोबल फ़्लैग, ऐसे एंकर जो मैच को ग़लत स्थिति पर टिका देते हैं, एक बिना एस्केप किया विशेष अक्षर, या आपकी अपेक्षित सीमा को लाँघते ग्रीडी क्वांटिफ़ायर। दोषी ढूँढ़ने के लिए टुकड़ा-दर-टुकड़ा परखें।

क्या मैं मैच के हिस्से कैप्चर कर सकता हूँ?

हाँ। एक कैप्चर समूह बनाने के लिए पैटर्न के किसी हिस्से को कोष्ठक में लपेटें। हर समूह की अलग रिपोर्ट होती है, जो आपको किसी तारीख़ से वर्ष, माह और दिन जैसे फ़ील्ड निकालने देता है।