Toolypet
Back to Blog
Dev

रेगुलर एक्सप्रेशन चीटशीट: अक्सर इस्तेमाल होने वाले पैटर्न

वेब डेवलपमेंट में सबसे ज्यादा इस्तेमाल होने वाले रेगुलर एक्सप्रेशन पैटर्न और उपयोग उदाहरण संकलित।

Toolypet Team6 min read
रेगुलर एक्सप्रेशन चीटशीट: अक्सर इस्तेमाल होने वाले पैटर्न

रेगुलर एक्सप्रेशन, क्यों सीखें?

रेगुलर एक्सप्रेशन (Regular Expression, Regex) डेवलपर के लिए स्विस आर्मी नाइफ जैसा है। शुरू में मुश्किल लगता है, लेकिन एक बार सीख लेने पर दर्जनों लाइनों का स्ट्रिंग प्रोसेसिंग कोड एक लाइन में बदल सकता है। ईमेल वैलिडेशन, फोन नंबर निकालना, लॉग पार्सिंग, टेक्स्ट रिप्लेसमेंट - स्ट्रिंग से जुड़े लगभग सभी कामों में रेगेक्स चमकता है।

कई डेवलपर रेगेक्स से डरते हैं क्योंकि इसका सिंटैक्स एक नज़र में समझ नहीं आता। /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ जैसा कोड गुप्त कोड जैसा दिखता है। लेकिन मूल सिंटैक्स समझने पर यह पैटर्न भी तार्किक रूप से पढ़ा जा सकता है। इस लेख में पहले रेगेक्स के मुख्य सिंटैक्स समझाएंगे, फिर व्यावहारिक रूप से अक्सर इस्तेमाल होने वाले पैटर्न एक-एक करके तोड़कर देखेंगे।

मूल सिंटैक्स व्यवस्थित रूप से समझना

रेगुलर एक्सप्रेशन का सिंटैक्स चार श्रेणियों में बांटा जा सकता है: मेटा कैरेक्टर, क्वांटिफायर, ग्रुप, एंकर।

मेटा कैरेक्टर: विशेष अर्थ वाले अक्षर

मेटा कैरेक्टर विशिष्ट कैरेक्टर सेट या शर्त दर्शाते हैं।

चिह्नअर्थउदाहरण
.न्यूलाइन छोड़कर सभी कैरेक्टरa.c → abc, adc, a1c
\dअंक (0-9)\d+ → 123, 4567
\Dअंक नहीं\D+ → abc, !@#
\wवर्ड कैरेक्टर (a-z, A-Z, 0-9, _)\w+ → hello_123
\Wवर्ड कैरेक्टर नहीं\W → स्पेस, विशेष चिह्न
\sव्हाइटस्पेस (स्पेस, टैब, न्यूलाइन)\s+ → एक से अधिक स्पेस
\Sव्हाइटस्पेस नहीं\S+ → लगातार शब्द

क्वांटिफायर: दोहराव व्यक्त करना

क्वांटिफायर पिछले एलिमेंट के दोहराव की संख्या निर्दिष्ट करते हैं।

चिह्नअर्थउदाहरण
*0 या अधिकab* → a, ab, abb, abbb
+1 या अधिकab+ → ab, abb, abbb
?0 या 1colou?r → color, colour
{n}ठीक n बार\d{4} → 2025
{n,}n या अधिक\d{2,} → 10, 100, 1000
{n,m}n से m के बीच\d{2,4} → 10, 100, 1000

एंकर और सीमाएं

एंकर कैरेक्टर नहीं बल्कि स्थिति को मैच करते हैं।

चिह्नअर्थउदाहरण
^स्ट्रिंग का आरंभ^Hello → "Hello World" मैच
$स्ट्रिंग का अंतWorld$ → "Hello World" मैच
\bवर्ड बाउंड्री\bcat\b → "cat" ही, "catch" नहीं
\Bवर्ड बाउंड्री नहीं\Bcat → "catch" का cat

ग्रुप और कैप्चर

कोष्ठक से पैटर्न ग्रुप करके मैच किए हिस्से कैप्चर किए जा सकते हैं।

const dateStr = '2025-12-25';
const regex = /(\d{4})-(\d{2})-(\d{2})/;

const match = dateStr.match(regex);
console.log(match[0]); // '2025-12-25' (पूरा मैच)
console.log(match[1]); // '2025' (पहला ग्रुप - वर्ष)
console.log(match[2]); // '12'   (दूसरा ग्रुप - माह)
console.log(match[3]); // '25'   (तीसरा ग्रुप - दिन)

व्यावहारिक पैटर्न संग्रह: एक-एक करके तोड़ना

1. ईमेल वैलिडेशन

ईमेल पैटर्न रेगेक्स का क्लासिक उदाहरण है। चरण दर चरण तोड़ें।

const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

पैटर्न विश्लेषण:

  • ^ - स्ट्रिंग का आरंभ
  • [a-zA-Z0-9._%+-]+ - लोकल पार्ट (@ के पहले): अक्षर, अंक, डॉट, अंडरस्कोर आदि 1 या अधिक
  • @ - @ चिह्न (लिटरल)
  • [a-zA-Z0-9.-]+ - डोमेन नाम: अक्षर, अंक, डॉट, हाइफन 1 या अधिक
  • \. - डॉट (एस्केप जरूरी)
  • [a-zA-Z]{2,} - टॉप-लेवल डोमेन: अक्षर 2 या अधिक (com, in, museum आदि)
  • $ - स्ट्रिंग का अंत

2. पासवर्ड स्ट्रेंथ चेक

जटिल पासवर्ड नियम रेगेक्स से वैलिडेट करने के लिए Lookahead इस्तेमाल होता है।

// न्यूनतम 8 अक्षर, अपर-लोअर केस, अंक, स्पेशल कैरेक्टर
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;

पैटर्न विश्लेषण:

  • (?=.*[a-z]) - छोटा अक्षर कम से कम 1 होना चाहिए (Lookahead)
  • (?=.*[A-Z]) - बड़ा अक्षर कम से कम 1 होना चाहिए
  • (?=.*\d) - अंक कम से कम 1 होना चाहिए
  • (?=.*[@$!%*?&]) - स्पेशल कैरेक्टर कम से कम 1 होना चाहिए
  • [A-Za-z\d@$!%*?&]{8,} - अनुमत कैरेक्टर से 8 या अधिक

3. फोन नंबर वैलिडेशन

भारतीय मोबाइल नंबर वैलिडेट करने का पैटर्न।

const phoneRegex = /^[6-9]\d{9}$/;

पैटर्न विश्लेषण:

  • [6-9] - 6, 7, 8, या 9 से शुरू
  • \d{9} - उसके बाद 9 अंक
phoneRegex.test('9876543210');  // true
phoneRegex.test('1234567890');  // false (1 से शुरू)

4. URL वैलिडेशन

URL पैटर्न विभिन्न फॉर्मेट सपोर्ट करने के कारण जटिल होता है।

const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/;

पैटर्न विश्लेषण:

  • (https?:\/\/)? - प्रोटोकॉल (http:// या https://) वैकल्पिक
  • ([\da-z.-]+) - डोमेन नाम
  • \.([a-z.]{2,6}) - TLD
  • ([\/\w .-]*)* - पाथ (वैकल्पिक)

5. IPv4 एड्रेस वैलिडेशन

IPv4 एड्रेस का प्रत्येक ऑक्टेट 0-255 रेंज में होना चाहिए।

const ipv4Regex = /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/;

पैटर्न विश्लेषण (0-255 मैचिंग):

  • 25[0-5] - 250-255
  • 2[0-4]\d - 200-249
  • [01]?\d\d? - 0-199
ipv4Regex.test('192.168.1.1');     // true
ipv4Regex.test('256.1.1.1');       // false (256 रेंज से बाहर)

परफॉर्मेंस ऑप्टिमाइज़ेशन

रेगेक्स धीमा होने का सबसे बड़ा कारण बैकट्रैकिंग है। ग्रीडी क्वांटिफायर अत्यधिक उपयोग होने पर परफॉर्मेंस तेज़ी से गिर सकती है।

ग्रीडी vs लेज़ी क्वांटिफायर

// ग्रीडी - अधिकतम मैच
'<div>content</div><div>more</div>'.match(/<div>.*<\/div>/);
// परिणाम: '<div>content</div><div>more</div>' (पूरा)

// लेज़ी - न्यूनतम मैच
'<div>content</div><div>more</div>'.match(/<div>.*?<\/div>/);
// परिणाम: '<div>content</div>' (केवल पहला)

क्वांटिफायर के बाद ? लगाने से लेज़ी मैचिंग होती है: *?, +?, ??

ऑप्टिमाइज़ेशन टिप्स

  1. एंकर उपयोग करें: ^ और $ से रेंज स्पष्ट रूप से सीमित करें
  2. विशिष्ट कैरेक्टर क्लास: .* की जगह [^<]* जैसे प्रतिबंधित
  3. नॉन-कैप्चरिंग ग्रुप: कैप्चर जरूरी न हो तो (?:...) इस्तेमाल करें
// कैप्चरिंग ग्रुप - धीमा (मैच परिणाम स्टोर)
/(abc)+/

// नॉन-कैप्चरिंग ग्रुप - तेज़ (स्टोर नहीं)
/(?:abc)+/

JavaScript में रेगेक्स उपयोग

const str = 'Contact us at support@example.com or sales@example.com';
const regex = /[\w.-]+@[\w.-]+\.\w+/g;

// सभी मैच खोजें
const emails = str.match(regex);
// ['support@example.com', 'sales@example.com']

// रिप्लेस
const masked = str.replace(regex, '[ईमेल छिपाया]');
// 'Contact us at [ईमेल छिपाया] or [ईमेल छिपाया]'

// स्प्लिट
'a,b;c:d'.split(/[,;:]/);
// ['a', 'b', 'c', 'd']

// इटरेटिव मैचिंग (matchAll)
for (const match of str.matchAll(/(\w+)@(\w+\.\w+)/g)) {
  console.log(`लोकल: ${match[1]}, डोमेन: ${match[2]}`);
}

Toolypet Regex Tester उपयोग

रेगेक्स लिखते समय सबसे कठिन बात तत्काल फीडबैक न मिलना है। Toolypet का Regex Tester इस समस्या का समाधान करता है:

  • पैटर्न और टेस्ट स्ट्रिंग डालते ही रीयल-टाइम मैच परिणाम
  • प्रत्येक कैप्चर ग्रुप क्या मैच करता है विज़ुअल डिस्प्ले
  • कई फ्लैग्स (g, i, m) टॉगल से आसान टेस्ट
  • अक्सर इस्तेमाल होने वाले पैटर्न टेम्पलेट

जटिल रेगेक्स डिबग करते समय, कोड में सीधे टेस्ट करने से पहले Toolypet में वैलिडेट करना कहीं अधिक कुशल है।

RegexRegular ExpressionValidationPattern Matching