Regex चीट शीट और सामान्य पैटर्न
रेगुलर एक्सप्रेशन, या regex, लगभग सभी प्रोग्रामिंग भाषाओं और टेक्स्ट एडिटरों में उपयोग किए जाने वाले शक्तिशाली पैटर्न मिलान उपकरण हैं। जबकि सिंटैक्स पहली नज़र में गूढ़ लग सकता है, Regex में महारत हासिल करने से आप सटीकता के साथ टेक्स्ट को खोज, सत्यापित, निकाल और रूपांतरित कर सकते हैं जिसके लिए प्रक्रियात्मक कोड में दर्जनों पंक्तियाँ लग सकती हैं। यह गाइड आवश्यक सिंटैक्स, सामान्य पैटर्न और व्यावहारिक सुझावों को कवर करती है जो आपको जानना चाहिए।
बुनियादी Regex सिंटैक्स चीट शीट
वर्ण वर्ग
| पैटर्न | अर्थ | उदाहरण |
|---|---|---|
| . | न्यूलाइन को छोड़कर कोई भी वर्ण | a.c abc, a1c, a c से मिलान करता है |
| \d | कोई भी अंक (0-9) | \d\d 42 से मिलान करता है |
| \D | कोई भी गैर-अंक | \D a, !, रिक्त स्थान से मिलान करता है |
| \w | शब्द कैरेक्टर (a-z, A-Z, 0-9, _) | \w+ hello_123 से मिलान करता है |
| \W | गैर-शब्द वर्ण | \W @, #, रिक्त स्थान से मिलान करता है |
| \s | व्हाइटस्पेस वर्ण (स्पेस, टैब, न्यूलाइन) | a\sb a b से मिलान करता है |
| \S | गैर-व्हाइटस्पेस वर्ण | \S+ hello से मिलान करता है |
| [abc] | सेट में कोई भी वर्ण | [aeiou] स्वरों से मिलान करता है |
| [^abc] | सेट में न होने वाला कोई भी कैरेक्टर | [^0-9] गैर-अंकों से मिलान करता है |
| [a-z] | कैरेक्टर रेंज | [A-Za-z] किसी भी अक्षर से मिलान करता है |
क्वांटिफ़ायर
| पैटर्न | अर्थ | उदाहरण |
|---|---|---|
| * | शून्य या अधिक बार | ab*c ac, abc, abbc से मिलान करता है |
| + | एक या अधिक बार | ab+c abc, abbc से मिलान करता है |
| ? | शून्य या एक बार | colou?r color, colour से मिलान करता है |
| {n} | ठीक n बार | \d{4} 4 अंकों से मिलान करता है |
| {n,} | n बार या अधिक | \d{2,} 2 या अधिक अंकों से मिलान करता है |
| {n,m} | n से m बार | \d{3,5} 3-5 अंकों से मिलान करता है |
एंकर और सीमाएँ
| पैटर्न | अर्थ | उदाहरण |
|---|---|---|
| ^ | स्ट्रिंग या पंक्ति की शुरुआत | ^Hello शुरुआत में Hello से मिलान करता है |
| $ | स्ट्रिंग या पंक्ति का अंत | world$ अंत में world से मिलान करता है |
| \b | शब्द सीमा | \bcat\b अलग cat से मिलान करता है |
| \B | गैर-शब्द सीमा | \Bcat scattered से मिलान करता है |
समूहीकरण और विकल्प
| पैटर्न | अर्थ | उदाहरण |
|---|---|---|
| (abc) | कैप्चर समूह | (ab)+ abab से मिलान करता है |
| (?:abc) | गैर-कैप्चरिंग समूह | (?:ab)+ abab से मिलान करता है |
| a|b | विकल्प (या) | cat|dog cat या dog से मिलान करता है |
| \1 | समूह 1 का बैकरेफ़रेंस | (\w)\1 aa, bb से मिलान करता है |
| नामित कैप्चर समूह | name से संदर्भित |
सामान्य Regex पैटर्न
वेब डेवलपमेंट और डेटा सत्यापन में सबसे अधिक उपयोग किए जाने वाले Regex पैटर्न नीचे दिए गए हैं:
ईमेल सत्यापन
एक व्यावहारिक ईमेल Regex जो अत्यधिक सख्त हुए बिना अधिकांश अमान्य पतों को पकड़ता है: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ । यह पैटर्न स्थानीय भाग में सामान्य वर्णों की अनुमति देते हुए और कम से कम दो वर्णों के TLD वाले मान्य डोमेन की आवश्यकता रखते हुए बुनियादी ईमेल संरचना को सत्यापित करता है।
URL सत्यापन
HTTP और HTTPS URL से मिलान: ^https?:\/\/(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(\/[^\s]*)?$ । यह पैटर्न वैकल्पिक www उपसर्ग, डोमेन नाम और वैकल्पिक पथ वाले URL से मिलान करता है।
फ़ोन नंबर (US)
विभिन्न प्रारूपों में US फ़ोन नंबर: ^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$ । यह पैटर्न (555) 123-4567, 555-123-4567 और 5551234567 जैसे प्रारूपों को संभालता है।
IP पता (IPv4)
IPv4 पता सत्यापन: ^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$ । यह पैटर्न सुनिश्चित करता है कि प्रत्येक ऑक्टेट 0 और 255 के बीच हो।
दिनांक (YYYY-MM-DD)
ISO दिनांक प्रारूप: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ । यह पैटर्न प्रारूप संरचना को सत्यापित करता है लेकिन प्रति माह मान्य दिनों की जाँच नहीं करता।
हेक्स कलर कोड
CSS हेक्साडेसिमल रंग से मिलान: ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ । यह पैटर्न 3-अंकीय शॉर्टहैंड (#fff) और 6-अंकीय (#ffffff) प्रारूपों से मिलान करता है।
उन्नत तकनीकें
लुकअहेड और लुकबिहाइंड
लुकअहेड और लुकबिहाइंड एसर्शन आपको केवल तभी मिलान करने देते हैं जब कोई पैटर्न किसी अन्य पैटर्न के बाद (या पहले) मौजूद हो (या न हो), बिना आसपास के टेक्स्ट को मिलान परिणाम में शामिल किए।
- पॉज़िटिव लुकअहेड (?=pattern): केवल तभी मिलान करता है जब पैटर्न आगे हो। उदाहरण: \d(?=px) केवल "px" से पहले के अंकों से मिलान करता है।
- नकारात्मक लुकअहेड (?!pattern): केवल तब मिलान करता है जब पैटर्न आगे न हो। उदाहरण: \d(?!px) उन अंकों से मिलान करता है जिनके आगे "px" न हो।
- <=pattern): केवल तभी मिलान करता है जब पैटर्न पीछे हो। उदाहरण: (?<=\$)\d+ डॉलर चिह्न के बाद के अंकों से मिलान करता है।
लालची बनाम आलसी मिलान
<.*>bold<.*?>" से मिलान करता है।
Regex प्रदर्शन सुझाव
- जब मिलान समूह सामग्री निकालने की आवश्यकता न हो तो गैर-कैप्चरिंग समूह (?:) का उपयोग करें
- जहाँ समर्थित हो, अत्यधिक बैकट्रैकिंग से बचने के लिए पज़ेसिव क्वांटिफ़ायर या एटॉमिक समूह का उपयोग करें
- व्यापक डॉट मेटाकैरेक्टर के बजाय विशिष्ट कैरेक्टर क्लास का उपयोग करें
- जब पूरे स्ट्रिंग से मिलान करना हो तो अपने पैटर्न को ^ और $ से एंकर करें
- लूप में बार-बार उपयोग करते समय Regex पैटर्न को प्री-कंपाइल करें
- बड़े टेक्स्ट में खोजते समय ^ और $ के बजाय शब्द सीमा \b का उपयोग करें
Regex का परीक्षण और डिबगिंग
Regex पैटर्न को तैनात करने से पहले, हमेशा वास्तविक इनपुट के साथ परीक्षण करें। एक इंटरैक्टिव Regex परीक्षक का उपयोग करें जो वास्तविक समय में मिलान को हाइलाइट करता है और पैटर्न के प्रत्येक भाग की व्याख्या करता है। इससे आपको किनारे के मामलों को पकड़ने और यह समझने में मदद मिलती है कि पैटर्न विशिष्ट इनपुट से क्यों मिलान करता है या नहीं करता। इंटरैक्टिव रूप से अपने पैटर्न बनाने और परीक्षण करने के लिए हमारा मुफ़्त Regex परीक्षक आज़माएँ।
हमारे मुफ़्त टूल का उपयोग करके अपने Regex पैटर्न बनाएँ, परीक्षण करें और डीबग करें।
रेगुलर एक्सप्रेशन टेस्टर आज़माएँरेगुलर एक्सप्रेशन चीट शीटअक्सर पूछे जाने वाले प्रश्न
लालची और आलसी Regex मिलान में क्या अंतर है?
लालची क्वांटिफ़ायर जितना संभव हो उतना टेक्स्ट मिलान करते हैं, जबकि आलसी क्वांटिफ़ायर जितना संभव हो कम टेक्स्ट मिलान करते हैं। क्वांटिफ़ायर के बाद प्रश्न चिह्न जोड़ने से यह आलसी हो जाता है। उदाहरण के लिए, .* सबसे लंबी संभव स्ट्रिंग से मिलान करता है, जबकि .*? सबसे छोटी से मिलान करता है।
क्या Regex सभी प्रोग्रामिंग भाषाओं में समान है?
नहीं, Regex कार्यान्वयन भाषाओं के बीच भिन्न होता है। अधिकांश बुनियादी POSIX सिंटैक्स का समर्थन करते हैं, लेकिन लुकबिहाइंड, नामित समूह और Unicode समर्थन जैसी उन्नत सुविधाएँ भिन्न होती हैं। JavaScript का ऐतिहासिक रूप से सीमित Regex समर्थन था, लेकिन हाल के वर्षों में कई सुविधाएँ जोड़ी गई हैं।
क्या Regex HTML या XML को पार्स कर सकता है?
नहीं, Regex विश्वसनीय रूप से HTML या XML को पार्स नहीं कर सकता क्योंकि वे नेस्टेड संदर्भ-मुक्त भाषाएँ हैं। Regex में नेस्टिंग गहराई या संतुलित टैग की कोई अवधारणा नहीं है। उचित HTML या XML पार्सर का उपयोग करें। Regex HTML से सरल पैटर्न निकाल सकता है, लेकिन जटिल संरचनाओं पर विफल हो जाता है।
Regex में लुकअहेड और लुकबिहाइंड क्या हैं?
<=pattern) सकारात्मक लुकबिहाइंड है, यदि पैटर्न पहले है तो मिलान करता है। नकारात्मक संस्करण = के बजाय ! का उपयोग करते हैं।
Regex को केस-इनसेंसिटिव कैसे बनाएँ?
समापन डेलिमीटर के बाद i फ़्लैग जोड़ने से पूरा पैटर्न केस-इनसेंसिटिव हो जाता है। JavaScript में, /pattern/i का उपयोग करें। Python में, फ़्लैग के रूप में re.IGNORECASE या re.I का उपयोग करें। आप विशिष्ट भागों को केस-इनसेंसिटिव बनाने के लिए इनलाइन (?i) का भी उपयोग कर सकते हैं।
ToolHub's collection of 300+ free online tools including regex tester, cheat sheets, and more — no sign-up required.