ऑनलाइन नियमित अभिव्यक्तियों का परीक्षण कैसे करें

· 5 मिनट पढ़ने का समय

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

regex परीक्षक का उपयोग क्यों करें

अपने कोड संपादक में regex लिखने का मतलब है कि आप केवल रनटाइम पर त्रुटियाँ देखते हैं। एक परीक्षक आपको दिखाता है:

ऑनलाइन regex कैसे परीक्षण करें

  1. अपना पैटर्न दर्ज करें: पैटर्न फ़ील्ड में regex टाइप करें। आवश्यकतानुसार झंडे (g वैश्विक के लिए, i केस-असंवेदनशील के लिए, m मल्टीलाइन के लिए) टॉगल करें।
  2. अपना परीक्षण पाठ चिपकाएँ: वह पाठ दर्ज करें जिसके विरुद्ध आप मिलान करना चाहते हैं। मिलान वास्तविक समय में हाइलाइट होते हैं।
  3. परिणाम देखें: नीचे सूचीबद्ध कैप्चर समूहों के साथ सभी मिलान देखें। प्रतिस्थापन का परीक्षण करने के लिए «से बदलें» फ़ील्ड का उपयोग करें।

नियमित अभिव्यक्तियों का संक्षिप्त इतिहास

नियमित अभिव्यक्तियों को 1951 में गणितज्ञ Stephen Kleene द्वारा तंत्रिका नेटवर्क पर उनके काम में «नियमित घटनाओं» के लिए एक संकेतन के रूप में औपचारिक रूप दिया गया था। वे सिद्धांत से व्यावहारिक उपयोग तक तब कूद गए जब Ken Thompson ने 1968 में बेल लैब्स में QED पाठ संपादक में उन्हें लागू किया, फिर ed संपादक (1969), और अंत में grep उपयोगिता (1973) में, जिसका नाम «global / regular expression / print» से आया है।

1987 में Larry Wall द्वारा पेश किए गए Perl ने regex सिंटैक्स को महत्वपूर्ण रूप से विस्तारित किया: गैर-लोभी क्वांटिफ़ायर, लुकहेड, नामित समूह, \d और \w जैसे वर्ण वर्ग शॉर्टकट। Perl-संगत नियमित अभिव्यक्तियाँ (PCRE) पुस्तकालय, 1997 में जारी, अधिकांश आधुनिक भाषाओं के लिए वास्तविक मानक बन गया।

आज, वस्तुतः हर प्रोग्रामिंग भाषा में अंतर्निहित regex समर्थन है, हालाँकि सिंटैक्स थोड़ा अलग है। JavaScript इंजन (Chrome में V8, Firefox में SpiderMonkey) अत्यधिक अनुकूलित है और अधिकांश ऑनलाइन regex परीक्षकों को शक्ति प्रदान करता है। PHP, Python (re मॉड्यूल), और Java (java.util.regex) निकट से संबंधित लेकिन समान नहीं सिंटैक्स का उपयोग करते हैं। यह जानना कि आप किस फ्लेवर के लिए लिख रहे हैं उन्नत सुविधाओं के लिए मायने रखता है।

जानने योग्य सामान्य regex पैटर्न

ईमेल पता (बुनियादी):

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

URL:

https?://[^\s]+

फ़ोन नंबर (US):

\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}

दिनांक (YYYY-MM-DD):

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])

IP पता (IPv4):

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

हेक्स रंग कोड:

#(?:[0-9a-fA-F]{3}){1,2}\b

स्लग (URL-सुरक्षित पहचानकर्ता):

^[a-z0-9]+(?:-[a-z0-9]+)*$

व्हाइटस्पेस-ट्रिम्ड स्ट्रिंग:

^\s*(.*?)\s*$

भाषाओं के बीच फ्लेवर अंतर

regex सिंटैक्स ज़्यादातर पोर्टेबल है लेकिन इसमें परेशानियाँ हैं:

जब आप किसी परीक्षक में regex लिखते हैं (लगभग हमेशा JavaScript फ्लेवर), तो इसके लिए प्रतिबद्ध होने से पहले पुष्टि करें कि लक्ष्य भाषा आपके द्वारा उपयोग की गई सभी सुविधाओं का समर्थन करती है।

सामान्य कठिनाइयां

regex का उपयोग कब न करें

regex कुछ कार्यों के लिए गलत उपकरण है:

यदि आप कई नेस्टेड समूहों के साथ 100 से अधिक वर्णों का regex लिख रहे हैं, तो आप शायद गलत समस्या हल कर रहे हैं।

बेहतर regex लिखने के लिए सुझाव

गोपनीयता और गोपनीय परीक्षण डेटा

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

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

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

क्या मेरी regex अन्य प्रोग्रामिंग भाषाओं में काम करेगी?

अधिकांश regex सिंटैक्स JavaScript, Python, Java, PHP और अन्य के बीच साझा है। बुनियादी पैटर्न (वर्ण वर्ग, क्वांटिफ़ायर, एंकर) हर जगह काम करते हैं। lookbehinds या नामित समूहों जैसी कुछ उन्नत सुविधाएँ भाषाओं के अनुसार भिन्न होती हैं।

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

नहीं। सारा मिलान JavaScript के मूल RegExp इंजन के साथ आपके ब्राउज़र में स्थानीय रूप से होता है। कुछ भी कहीं और नहीं भेजा जाता।

क्या मैं प्रतिस्थापन का परीक्षण कर सकता हूँ?

हाँ। वास्तविक समय में एक खोज-और-प्रतिस्थापन का परिणाम देखने के लिए एक प्रतिस्थापन पैटर्न दर्ज करें (कैप्चर समूहों के लिए $1, $2 आदि का उपयोग करके)।

क्या यह ऑफ़लाइन काम करता है?

हाँ। एक बार पेज लोड होने के बाद, टूल बिना इंटरनेट कनेक्शन के पूरी तरह आपके ब्राउज़र में काम करता है।