C# में रेगुलर एक्सप्रेशन: थ्योरी से प्रैक्टिस तक
\n\nरेगुलर एक्सप्रेशन (regex) टेक्स्ट को पैटर्न के आधार पर खोजने, निकालने और बदलने का एक शक्तिशाली टूल है। C# (.NET) में रेगुलर एक्सप्रेशन के लिए System.Text.RegularExpressions नेमस्पेस और Regex क्लास का उपयोग किया जाता है। इस आर्टिकल में हम रियल उदाहरणों के साथ बेसिक से लेकर email और फ़ोन वेरिफिकेशन तक सब कुछ कवर करेंगे।
1. बुनियादी बातें: Regex क्लास और इसके मेथड
\n\nमुख्य क्लास Regex है। इसमें स्टैटिक और इंस्टेंस दोनों तरह के मेथड होते हैं। मुख्य मेथड ये हैं:
- \n
IsMatch— जाँचता है कि स्ट्रिंग में पैटर्न से मेल खाने वाला कोई भाग है या नहीं। \nMatch— पहला मैच ढूँढता है। \nMatches— सभी मैच ढूँढता है। \nReplace— मैच को निर्दिष्ट स्ट्रिंग से बदलता है। \nSplit— पैटर्न के आधार पर स्ट्रिंग को विभाजित करता है। \n
उदाहरण 1. सरल जाँच
\nusing System;\nusing System.Text.RegularExpressions;\n\nclass Program\n{\n static void Main()\n {\n string text = "नमस्ते, मेरा नंबर: 123-456-7890";\n string pattern = @"\\d{3}-\\d{3}-\\d{4}";\n\n if (Regex.IsMatch(text, pattern))\n {\n Console.WriteLine("नंबर मिल गया!");\n }\n }\n}\n\n\nइस उदाहरण में \\d{3} का मतलब है "ठीक तीन अंक"। बैकस्लैश को @ (वरबेटिम स्ट्रिंग) से एस्केप किया गया है।
2. ग्रुप कैप्चर और डेटा निकालना
\n\nग्रुप कैप्चर से आप मैच के कुछ हिस्से निकाल सकते हैं। इन्हें गोल ब्रैकेट () से परिभाषित किया जाता है। हर ग्रुप को एक क्रमांक मिलता है (1 से शुरू)।
उदाहरण 2. Email से नाम और डोमेन निकालना
\nstring email = "user@example.com";\nstring pattern = @"^(\\w+)@(\\w+\\.\\w+)$";\n\nMatch match = Regex.Match(email, pattern);\n\nif (match.Success)\n{\n Console.WriteLine($"लॉगिन: {match.Groups[1].Value}"); // user\n Console.WriteLine($"डोमेन: {match.Groups[2].Value}"); // example.com\n}\n\n\nयहाँ (\\w+) एक या अधिक अल्फ़ान्यूमेरिक कैरेक्टर कैप्चर करता है। ^ और $ स्ट्रिंग की शुरुआत और अंत के एंकर हैं।
उदाहरण 3. URL पार्स करना
\nstring url = "https://pythonlib.ru/page?id=42";\nstring pattern = @"^(https?)://([^/]+)(/.*)?$";\n\nMatch m = Regex.Match(url, pattern);\nif (m.Success)\n{\n Console.WriteLine($"प्रोटोकॉल: {m.Groups[1].Value}"); // https\n Console.WriteLine($"डोमेन: {m.Groups[2].Value}"); // pythonlib.ru\n Console.WriteLine($"पथ: {m.Groups[3].Value}"); // /page?id=42\n}\n\n\n3. टेक्स्ट बदलना और हटाना
\n\nReplace मेथड से आप मैच किए गए हिस्सों को बदल सकते हैं। ग्रुप डालने के लिए $1, $2 जैसे रिवर्स रेफरेंस का उपयोग करें।
उदाहरण 4. फ़ोन नंबर को फ़ॉर्मेट करना
\nstring raw = "89161234567";\nstring pattern = @"(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})";\nstring replacement = "+7 ($2) $3-$4-$5";\n\nstring formatted = Regex.Replace(raw, pattern, replacement);\nConsole.WriteLine(formatted); // +7 (916) 123-45-67\n\n\nउदाहरण 5. अतिरिक्त स्पेस हटाना
\nstring text = "यह टेक्स्ट बहुत अधिक स्पेस वाला है।";\nstring cleaned = Regex.Replace(text, @"\\s+", " ");\nConsole.WriteLine(cleaned); // "यह टेक्स्ट बहुत अधिक स्पेस वाला है।"\n\n\n\\s+ — एक या अधिक स्पेस कैरेक्टर। इसे एक स्पेस से बदल दिया गया है।
4. रियल केस: Email और फ़ोन वेरिफिकेशन
\n\nप्रैक्टिस में रेगुलर एक्सप्रेशन का सबसे आम उपयोग यूज़र इनपुट की जाँच करना है। यहाँ दो टिपिकल उदाहरण दिए गए हैं।
\n\nEmail वेरिफिकेशन (सरलीकृत)
\npublic static bool IsValidEmail(string email)\n{\n if (string.IsNullOrWhiteSpace(email))\n return false;\