C# Regex Tutorial: C# रेग्युलर एक्सप्रेशन म्हणजे काय

हे C# Regex ट्यूटोरियल C# मध्ये रेग्युलर एक्सप्रेशन म्हणजे काय, त्याची वाक्यरचना, Regex क्लास पद्धती आणि उदाहरणांच्या मदतीने या पद्धती कशा वापरायच्या हे स्पष्ट करते:

रेगुलर एक्सप्रेशन C# मध्ये विशिष्ट वर्ण नमुना जुळण्यासाठी वापरला जातो. जेव्हा जेव्हा वापरकर्त्याला काही पुनरावृत्ती पॅटर्न शोधणे किंवा डेटा प्रमाणीकरण करणे किंवा डेटा फॉरमॅटिंग तपासणे आवश्यक असते तेव्हा रेग्युलर एक्सप्रेशन वापरले जातात.

स्ट्रिंगमध्ये दिलेल्या कॅरेक्टर पॅटर्नशी जुळते किंवा नाही हे शोधण्यासाठी RegEx वापरले जाते. regex हा मुख्यत: एक वर्ण क्रम असतो जो नमुना दर्शवतो.

पॅटर्न हा संख्या, वर्ण किंवा सर्वांच्या मिश्रणापासून काहीही असू शकतो. प्रमाणीकरणासाठी Regex मोठ्या प्रमाणावर वापरले जाते. स्ट्रिंग्स पार्सिंग किंवा मॅचिंग, उदाहरणार्थ, स्ट्रिंग चलन फॉरमॅट, फोन नंबर किंवा डेट फॉरमॅटशी जुळते का ते शोधणे.

C# 6 मधील Regex क्लास>

रेजेक्स ऑपरेशन्स करण्यासाठी सी# मध्ये Regex क्लास वापरला जातो. यात अनेक भिन्न पद्धती आहेत ज्यांचा वापर regex शी संबंधित विविध ऑपरेशन्स करण्यासाठी केला जाऊ शकतो.

मोठ्या मजकुराचे विश्लेषण करण्यासाठी विशिष्ट वर्ण क्रम शोधण्यासाठी वापरल्या जाऊ शकतात अशा पद्धतींचा वापर करून जुळणी करण्यासाठी वापरली जाऊ शकते. बदला किंवा वर्ण क्रम विभाजित करण्यासाठी वापरला जाऊ शकतो.

रेजेक्स वर्ग नेमस्पेसमध्ये उपस्थित आहे; System.Text.RegularExpression. वर्ग पॅरामीटर म्हणून वर्ण क्रमाच्या स्वरूपात स्ट्रिंग स्वीकारतो.

C# Regex पद्धती

आम्ही तयार केलेला “^सुपर” सुपरच्या सर्व मूल्यांशी जुळू शकतो, अगदी सुपरमॅन किंवा अलौकिक पण आम्हाला फक्त “सुपर” हा शब्द नको आहे.

याचा अर्थ या शब्दाच्या नंतर पांढरी जागा असावी शब्दाचा शेवट आणि दुसऱ्या शब्दाची सुरुवात चिन्हांकित करा. ते करण्यासाठी आम्ही पॅटर्नमध्ये “\s” चिन्ह जोडू आणि त्याद्वारे आमचा अंतिम पॅटर्न

^सुपर\s

परिस्थिती 3: वैध फाइल शोधण्यासाठी रेग्युलर एक्सप्रेशन वापरा इमेज फाइल प्रकार विस्तारासह नावे.

आणखी एक महत्त्वाची रिअल-टाइम परिस्थिती ज्याचा विकासकांना सहसा सामना करावा लागतो तो म्हणजे फाइल प्रकारांचे प्रमाणीकरण. समजा आमच्याकडे UI मध्‍ये एक अपलोड बटण आहे, जे केवळ इमेज फाईल प्रकार एक्स्टेन्‍शन स्‍वीकारू शकते.

आम्ही वापरकर्त्याची अपलोड फाइल सत्यापित करणे आणि चुकीचे फाईल फॉरमॅट अपलोड केल्‍यास त्याला कळवणे आवश्‍यक आहे. रेग्युलर एक्सप्रेशन वापरून हे सहज साध्य करता येते.

हे तपासण्यासाठी खाली दिलेला एक सोपा प्रोग्राम आहे.

public static void Main(string[] args) gif)$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("abc.jpg")); Console.WriteLine(reg.IsMatch("ab_c.gif")); Console.WriteLine(reg.IsMatch("abc123.png")); //When pattern doesnt match Console.WriteLine(reg.IsMatch(".jpg")); Console.WriteLine(reg.IsMatch("ask.jpegj")); 

आउटपुट

True

सत्य

सत्य

असत्य

असत्य

स्पष्टीकरण

येथे आपल्याला एक जुळणे आवश्यक आहे फाईलचे नाव. वैध फाइल नाव तीन भागांनी बनलेले आहे ( फाइलचे नाव + . + फाइल विस्तार ). तिन्ही भाग जुळण्यासाठी आपल्याला रेग्युलर एक्सप्रेशन तयार करावे लागेल. पहिल्या भागाशी म्हणजे फाईलचे नाव जुळवून सुरुवात करूया. फाईलच्या नावात अल्फान्यूमेरिक आणि विशेष वर्ण असू शकतात.

आधी चर्चा केल्याप्रमाणे चिन्ह हे "\w" आहे. तसेच, फाइल नाव एक किंवा अधिक असू शकतेत्यानंतर डॉट (.) नंतर वेबसाइटचे नाव त्यानंतर डॉट (.) आणि शेवटी डोमेन विस्तार.

म्हणून, मागील परिस्थितीप्रमाणेच आम्ही ते भाग-भाग जुळवण्याचा प्रयत्न करू. . चला प्रथम "www." जुळवून सुरुवात करूया. भाग. म्हणून आपण सुरुवातीच्या चिन्हाने सुरुवात करतो, नंतर "www." हे काहीतरी निश्चित आहे, म्हणून आम्ही अचूक शब्द जुळण्यासाठी सुरुवातीचे चिन्ह वापरतो.

“^www.”

मग आपण दुसऱ्या भागावर काम करू. वेब पत्त्याचा दुसरा भाग कोणतेही अल्फान्यूमेरिक नाव असू शकते. तर, येथे आपण कॅरेक्टर क्लासमध्ये उपस्थित असलेल्या स्क्वेअर ब्रॅकेट्सचा वापर करू ज्या श्रेणीची जुळणी करणे आवश्यक आहे. दुसरा भाग जोडल्यानंतर दुसऱ्या भागासह आम्हाला मिळेल.

“^www.[a-zA-Z0-9]{3,20}”

येथे आम्ही वेबसाइटच्या नावासाठी किमान आणि कमाल वर्ण लांबी परिभाषित करण्यासाठी कुरळे ब्रेसेस देखील जोडले आहेत. आम्ही किमान 3 आणि जास्तीत जास्त 20 दिले आहेत. तुम्हाला हवी असलेली किमान किंवा कमाल लांबी तुम्ही देऊ शकता.

आता, वेब पत्त्याचा पहिला आणि दुसरा भाग कव्हर केल्यावर आमच्याकडे फक्त शेवटचा शिल्लक आहे भाग, म्हणजे डोमेन विस्तार. हे आम्ही शेवटच्या परिस्थितीमध्ये केले त्यासारखेच आहे, आम्ही OR वापरून आणि प्रत्येक वैध डोमेन विस्तार वर्तुळाकार ब्रॅकेटमध्ये संलग्न करून डोमेन विस्तारांशी थेट जुळवू.

अशा प्रकारे आम्ही हे सर्व एकत्र जोडल्यास आमच्याकडे असेल कोणत्याही वैध वेब पत्त्याशी जुळण्यासाठी संपूर्ण नियमित अभिव्यक्ती.

www.[a-zA-Z0-9]{3,20}.(com|in|org|co\.in|net|dev)$

परिदृश्य 5: प्रमाणित करण्यासाठी नियमित अभिव्यक्ती वापराईमेल आयडी फॉरमॅट

आमच्या वेबपेजवर साइन-इन फॉर्म आहे असे गृहीत धरू जे वापरकर्त्यांना त्यांचा ईमेल पत्ता एंटर करण्यास सांगते. स्पष्ट कारणांमुळे, आमचा फॉर्म अवैध ईमेल पत्त्यांसह पुढे जाऊ इच्छित नाही. वापरकर्त्याने प्रविष्ट केलेला ईमेल पत्ता बरोबर आहे की नाही हे सत्यापित करण्यासाठी आम्ही नियमित अभिव्यक्ती वापरू शकतो.

खाली दिलेला ईमेल पत्ता सत्यापित करण्यासाठी एक सोपा प्रोग्राम आहे.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}.(com|org|co\.in|net)"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("[email protected]")); Console.WriteLine(reg.IsMatch("[email protected]")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("[email protected]")); }

आउटपुट

सत्य

सत्य

असत्य

स्पष्टीकरण

A वैध ईमेल पत्त्यामध्ये अक्षरे, अंक आणि काही विशेष वर्ण असतात जसे की डॉट (.), डॅश (-), आणि अंडरस्कोअर (_) त्यानंतर “@” चिन्ह आणि त्यानंतर डोमेन नाव आणि डोमेन विस्तार.

अशा प्रकारे, आम्ही ईमेल पत्ता चार भागांमध्ये विभागू शकतो जसे की ईमेल आयडेंटिफायर, “@” चिन्ह, डोमेन नाव आणि शेवटचा डोमेन विस्तार.

चला साठी नियमित अभिव्यक्ती लिहून सुरुवात करूया पहिला भाग. हे काही विशेष वर्णांसह अल्फा-न्यूमेरिक असू शकते. असे गृहीत धरा की आपल्याकडे 5 ते 25 वर्णांपर्यंतचे अभिव्यक्ती आकार आहे. आम्ही ते आधी कसे लिहिले त्याप्रमाणेच (ईमेल परिस्थितीमध्ये), आम्ही खालील अभिव्यक्तीसह येऊ शकतो.

^[a-zA-Z0-9\._-]{5,25}

आता, दुसऱ्या भागाकडे जात आहोत. हे तुलनेने सोपे आहे कारण आपल्याला फक्त एक चिन्ह म्हणजे “@” जुळवायचे आहे. वरील अभिव्यक्तीमध्ये ते जोडल्याने आम्हाला मिळते.

^[a-zA-Z0-9\._-]{5,25}.@

तिसऱ्या भागात जाणे म्हणजे डोमेन नाव नेहमी खालच्या भागाची मालिका असेलजुळणारे शब्द, अक्षरे, वेबसाइटचे पत्ते, ईमेल आयडी आणि अगदी फाइल प्रकार आणि विस्तार.

कोडच्या असंख्य ओळी न लिहिता वापरकर्त्याच्या इनपुटचे रीअल-टाइम प्रमाणीकरण करण्यासाठी या परिस्थिती खूप उपयुक्त आहेत आणि त्यामुळे वेळ वाचविण्यात मदत होते आणि जटिलता कमी करा. ही उदाहरणे वापरकर्त्याला त्यांच्या स्वतःच्या रेग्युलर एक्स्प्रेशन्सचा संच तयार करण्यासाठी मार्गदर्शन करण्यासाठी वापरली गेली आहेत आणि अशा प्रकारे त्यांना इतर अनेक भिन्न परिस्थिती हाताळण्यात मदत केली आहे.

रेजेक्स दिलेल्या मालिकेशी जुळण्यासाठी वर्णमाला किंवा अंक वापरण्यासारखे सोपे असू शकते. जटिल स्वरूप प्रमाणित करण्यासाठी किंवा वर्ण मालिकेतील विशिष्ट पॅटर्न शोधण्यासाठी विशेष वर्ण, परिमाण, वर्ण वर्ग इत्यादींच्या संयोजनाचा वापर करून वर्ण किंवा जटिल प्रोग्रामरसाठी शक्तिशाली साधन आणि डेटा जुळणी किंवा प्रमाणीकरण कार्य पूर्ण करण्यासाठी आवश्यक असलेल्या कोडचे प्रमाण कमी करण्यात मदत करते.

IsMatch

Regex वर्गातील सर्वात सोपी आणि सर्वात उपयुक्त पद्धत म्हणजे IsMatch पद्धत. या पद्धतीमध्ये वेगवेगळ्या पॅरामीटर्सवर आधारित वर्ण जुळण्यासाठी वेगवेगळे ओव्हरलोड आहेत.

सर्वात सोपा आहे

बदला(स्ट्रिंग मजकूर, स्ट्रिंग रिप्लेसमेंट टेक्स्ट)

बदलण्याची पद्धत दोन स्वीकारते पॅरामीटर्स आणि स्ट्रिंग व्हॅल्यू मिळवते. पहिला पॅरामीटर वर्ण क्रम किंवा regex आहे जो तुम्हाला जुळण्यासाठी वापरायचा आहे आणि दुसरा म्हणजे regex बदलणे.

पद्धत दिलेल्या मजकुराची जुळवाजुळव करून कार्य करते आणि नंतर ते बदलते. वापरकर्त्याद्वारे प्रदान केलेला बदली मजकूर. पद्धत स्वाक्षरी आहे पब्लिक स्ट्रिंग रिप्लेस(स्ट्रिंग टेक्स्ट, स्ट्रिंग रिप्लेसमेंट टेक्स्ट)

पब्लिक स्ट्रिंग[] स्प्लिट(स्ट्रिंग टेक्स्ट)

स्प्लिट मेथड regex क्लास मधून स्ट्रिंग इनपुट पॅरामीटर म्हणून स्वीकारतो आणि सबस्ट्रिंग्स असलेला अॅरे परत करतो. पद्धतीमध्ये पास केलेले पॅरामीटर ही स्ट्रिंग आहे जी विभाजित करणे आवश्यक आहे.

पद्धती स्ट्रिंगमध्ये जुळणारा इनपुट पॅटर्न शोधते आणि एकदा ती कोणत्याही जुळणारा पॅटर्न ओळखल्यानंतर, ती त्या ठिकाणी असलेल्या स्ट्रिंगला लहान सबस्ट्रिंगमध्ये विभाजित करते प्रत्येक जुळणारा नमुना ब्रेकिंग पॉइंट आहे. पद्धत नंतर सर्व सबस्ट्रिंग्स असलेली अॅरे देते.

Regex C# पद्धतींचा वापर

एक साधा प्रोग्राम लिहून या पद्धतींचा वापर पाहू.

public static void Main(string[] args) { string patternText = "Hello"; Regex reg = new Regex(patternText); //IsMatch(string input) Console.WriteLine(reg.IsMatch("Hello World")); //IsMatch(string input, int index) Console.WriteLine(reg.IsMatch("Hello", 0)); //IsMatch(string input, string pattern) Console.WriteLine(Regex.IsMatch("Hello World", patternText)); //Replace(string input, string replacement) Console.WriteLine(reg.Replace("Hello World", "Replace")); //Split(string input, string pattern) string[] arr = Regex.Split("Hello_World_Today", "_"); foreach(string subStr in arr) { Console.WriteLine("{0}", subStr); } }

वरील आउटपुटप्रोग्राम

True

True

True

Replace World

Hello

World

आज

वरील कोडचे स्पष्टीकरण:

प्रोग्रामच्या सुरूवातीस, आम्ही एक ऑब्जेक्ट तयार केला आहे आणि तो पॅटर्न जो आम्ही वापरणार आहोत. त्यानंतरच्या स्ट्रिंग इनपुटमध्ये कोड जुळण्यासाठी, सुरुवातीला गोष्टी सोप्या ठेवण्यासाठी आम्ही मजकूर स्वरूपन वापरले आहे परंतु जर तुम्हाला सोयीस्कर असाल तर तुम्ही रेग्युलर एक्सप्रेशन पॅटर्न वापरणे सुरू करू शकता. (आम्ही या ट्युटोरियलमध्ये पुढे जाताना रेग्युलर एक्सप्रेशन पॅटर्नवर तपशीलवार चर्चा करू)

मग, इनपुट स्ट्रिंगसह निर्दिष्ट ऑब्जेक्ट म्हणून घोषित केलेला घटक इनपुट करण्यासाठी आणि जुळत असल्यास मॅच स्ट्रिंगचा वापर करू नंतर ते रिटर्न फॉल्सवर परत येईल.

आम्ही वापरलेली पुढील पद्धत IsMethod(स्ट्रिंग इनपुट, इंट इंडेक्स) आहे. ही पद्धत दोन-पॅरामीटर स्वीकारते, आणि येथे आम्ही इनपुट स्ट्रिंग आणि इंडेक्स प्रदान करतो जिथून सामना सुरू करायचा आहे. उदाहरणार्थ, इथे आम्हाला इनपुट स्ट्रिंगच्या सुरुवातीपासून जुळणी सुरू करायची होती.

मग आम्ही IsMatch(स्ट्रिंग इनपुट, स्ट्रिंग पॅटर्न) चा वापर दाखवला. येथे आम्ही इनपुट स्ट्रिंग प्रदान केली त्यानंतर आम्हाला हे शोधायचे होते की इनपुटमध्ये पॅटर्न मजकूर उपस्थित आहे की नाही. जर ते वर्तमान असेल तर ते खरे होईल (आमच्या बाबतीत जसे) अन्यथा ते खोटे परत येईल.

आम्ही चर्चा केलेली दुसरी पद्धत बदलली आहे. ज्या प्रोग्राममध्ये तुम्हाला इनपुट डेटामध्ये बदल करायचे आहेत तेथे ही पद्धत उपयुक्त आहेकिंवा विद्यमान डेटाचे स्वरूप बदला.

येथे आम्ही दोन पॅरामीटर्स देतो, पहिली इनपुट स्ट्रिंग आहे आणि दुसरी स्ट्रिंग आहे जी मागील स्ट्रिंग बदलण्यासाठी वापरली जाऊ शकते. ही पद्धत आम्ही आधी परिभाषित केलेल्या regex ऑब्जेक्टमध्ये परिभाषित केलेल्या पॅटर्नचा देखील वापर करते.

आम्ही वापरलेली दुसरी महत्त्वाची पद्धत म्हणजे स्प्लिट. काही आवर्ती नमुन्यांवर आधारित दिलेल्या स्ट्रिंगचे विभाजन करण्यासाठी ही पद्धत वापरली जाते. येथे, आम्ही “Hello_World_Today” ही स्ट्रिंग दिली आहे.

आपल्याला दिलेल्या स्ट्रिंगमधून अंडरस्कोर काढून सबस्ट्रिंग्स मिळवायचे आहेत असे समजू. यासाठी, आम्ही इनपुट पॅरामीटर निर्दिष्ट करतो आणि नंतर आम्ही पॅटर्न देतो जो आम्हाला स्प्लिटिंग पॉइंट म्हणून वापरायचा आहे. पद्धत अॅरे परत करते आणि आम्ही सर्व स्ट्रिंग्स पुनर्प्राप्त करण्यासाठी foreach सारख्या साध्या लूपचा वापर करू शकतो.

रेग्युलर एक्सप्रेशन सिंटॅक्स

स्पेशल कॅरेक्टर्स, क्वांटिफायर्स, कॅरेक्टर क्लासेस, यांसारखे अनेक भिन्न वाक्यरचना आहेत. इ. जे दिलेल्या इनपुटमधून विशिष्ट पॅटर्नशी जुळण्यासाठी वापरले जाऊ शकते.

ट्युटोरियलच्या या भागात, आम्ही regex द्वारे ऑफर केलेल्या वाक्यरचनामध्ये खोलवर जाऊ आणि काही वास्तविक जीवनातील परिस्थिती सोडवण्याचा प्रयत्न करू. त्यांचा वापर करून. आम्ही पुढे जाण्यापूर्वी, खात्री करा की तुम्हाला regex ची मूलभूत कल्पना आणि regex वर्गामध्ये उपलब्ध असलेल्या विविध पद्धतींची माहिती मिळाली आहे.

विशेष वर्ण

रेजेक्समधील विशेष वर्ण अनेक भिन्न अर्थ नियुक्त करण्यासाठी वापरले जातात. नमुना करण्यासाठी. आता आपण बघूRegex.3

विशेष वर्ण अर्थ
मधील काही मोठ्या प्रमाणात वापरलेली विशेष वर्ण आणि त्यांचा अर्थ ^ हा सर्वात जास्त वापरल्या जाणार्‍या वाक्यरचनांपैकी एक आहे. हे इनपुट मजकूराच्या सुरुवातीपासून जुळणारे प्रारंभ, शब्द किंवा पॅटर्न दर्शविते.
$ हे चिन्ह शेवटपासून शब्द जुळण्यासाठी वापरले जाते स्ट्रिंग च्या. या चिन्हापूर्वी दर्शविलेले शब्द/नमुने स्ट्रिंगच्या शेवटी उपस्थित असलेल्या शब्दांशी जुळतील.
. (डॉट) डॉटचा वापर दिलेल्या स्ट्रिंगमधील एका वर्णाशी एकदा जुळण्यासाठी केला जातो.
\n हे नवीनसाठी वापरले जाते. ओळ.
\d आणि \D लोअर केस 'd' अंकी वर्ण जुळण्यासाठी वापरला जातो आणि अप्पर केस 'D' हा अंक नसलेल्या अक्षरांशी जुळण्यासाठी वापरला जातो. वर्ण.
\s आणि \S लोअर केस 's' चा वापर पांढऱ्या स्पेसशी जुळण्यासाठी केला जातो आणि अप्पर केस 'S' हा पांढर्‍या नसलेल्या स्पेसशी जुळण्यासाठी वापरला जातो .
\w आणि \W लोअर केस 'w' अल्फान्यूमेरिक/अंडरस्कोर वर्णांशी जुळण्यासाठी वापरला जातो आणि अप्पर केस 'W' हा शब्द नसलेल्या शब्दांशी जुळण्यासाठी वापरला जातो. वर्ण.

क्वांटिफायर सिंटॅक्स

क्वांटिफायर सिंटॅक्सचा वापर जुळणारे निकष मोजण्यासाठी किंवा परिमाण करण्यासाठी केला जातो. उदाहरणार्थ, एखाद्या विशिष्ट स्ट्रिंगमध्ये एक किंवा अधिक वेळा वर्णमाला आहे का ते तपासायचे असल्यास. रेग्युलर एक्स्प्रेशनमधील काही सामान्यतः वापरल्या जाणार्‍या क्वांटिफायरवर एक नजर टाकूया.

क्वांटिफायरवाक्यरचना अर्थ
* हे चिन्ह मागील वर्णाशी जुळण्यासाठी वापरले जाते.
+ हे चिन्ह एका ओळीतील एक किंवा अधिक वर्णांशी जुळण्यासाठी वापरले जाते.
{n} कर्लीमधील अंकीय अंक कर्ली ब्रेसेसच्या आतील संख्यात्मक द्वारे परिभाषित केलेल्या आधीच्या वर्णांच्या संख्येशी जुळण्यासाठी ब्रेसेसचा वापर केला जातो.
{n,} कर्ली ब्रेसेसमधील अंक आणि हे चिन्ह वापरले जाते ते कमीत कमी n शी जुळत असल्याची खात्री करण्यासाठी (म्हणजे ब्रेसेसमधील अंकीय मूल्य).
{n, m} या चिन्हाचा वापर मागील वर्णाशी जुळण्यासाठी केला जातो. n वेळा ते m वेळा.
? हे चिन्ह मागील वर्ण पर्यायी म्हणून जुळवते.

कॅरेक्टर क्लास

कॅरेक्टर क्लासला कॅरेक्टर सेट्स असेही म्हणतात, आणि हे रेगेक्स इंजिनला अनेक वर्णांपैकी एक जुळणी शोधण्यासाठी सांगण्यासाठी वापरले जाते. वर्ण वर्ग फक्त एका वर्णाशी जुळेल आणि वर्ण संचामध्ये बंद केलेल्या वर्णांचा क्रम काही फरक पडत नाही.

17
वर्ण वर्ग अर्थ
[ श्रेणी ] चौकोनी कंस चिन्ह वर्णांच्या श्रेणीशी जुळण्यासाठी वापरले जाते. उदाहरणार्थ, आम्ही [a-z] सारख्या कंसात श्रेणी संलग्न करून वर्णमाला “a” ते “z” या श्रेणीतील कोणतेही वर्ण परिभाषित करण्यासाठी वापरू शकतो किंवा, आम्ही अंकीय “1” ते “” बरोबर देखील जुळवू शकतो. 9” सूचित करूनकाही रिअल-टाइम उदाहरणे वापरून अभिव्यक्ती.

परिदृश्य 1: इनपुट स्ट्रिंग 6 अंकी केस-संवेदनशील वर्णमाला वर्णांनी बनलेली असल्यास सत्यापित करा.

नियमित अभिव्यक्तीसाठी सर्वात सामान्य परिस्थिती म्हणजे दिलेला शब्द शोधणे आणि जुळवणे. उदाहरणार्थ, समजा मला वापरकर्त्याकडून एक यादृच्छिक वर्णमाला स्ट्रिंग हवी आहे आणि ते इनपुट 6 अंकी लांब असावे.

आम्ही एक साधी रेग्युलर एक्सप्रेशन वापरू शकतो हे सत्यापित करण्यासाठी. रेग्युलर एक्स्प्रेशन लेखन आणि वापर चांगल्या प्रकारे समजून घेण्यासाठी एक प्रोग्राम लिहूया.

public static void Main(string[] args) { string patternText = @"^[a-zA-Z]{6}$"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Helios")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Helo")); }

आउटपुट

सत्य

असत्य

0 स्पष्टीकरण

या उदाहरणात, आम्ही इनपुट स्ट्रिंग प्रमाणित करण्याचा प्रयत्न करत आहोत, त्यात सहा-अंकी वर्णमाला वर्ण आहेत की नाही हे तपासण्यासाठी. वर्ण लोअर आणि अप्पर केस दोन्हीमध्ये असू शकतात, त्यामुळे आम्हाला ते देखील लक्षात घेणे आवश्यक आहे.

म्हणून, येथे आम्ही व्हेरिएबल "पॅटर्न टेक्स्ट" मध्ये एक रेग्युलर एक्सप्रेशन पॅटर्न परिभाषित केला आणि नंतर तो रेगेक्स ऑब्जेक्टमध्ये पास केला. . आता, कोडच्या पुढील ओळी अगदी सोप्या आहेत, रेग्युलर एक्सप्रेशन आणि इनपुट स्ट्रिंगची तुलना करण्यासाठी आम्ही IsMatch पद्धत वापरली आहे.

आता आपण तयार केलेल्या रेग्युलर एक्सप्रेशनवर एक नजर टाकूया. अभिव्यक्ती (^[a-zA-Z]{6}$) 4 वेगवेगळ्या भागांनी बनलेली आहे. “^”, “[a-zA-Z]”, “{6}” आणि “$”. दुसरा भाग जुळणार्‍या वर्णांना सूचित करतो, ज्याचा उपयोग अभिव्यक्ती जुळणी करण्यासाठी केला जातो, लोअर केससाठी “a-z” आणि अप्पर केस अक्षरांसाठी “A-Z”.

पहिलाभाग वर्ण “^” हे सुनिश्चित करते की स्ट्रिंग दुसर्‍या भागात परिभाषित केलेल्या पॅटर्नसह सुरू होते, म्हणजे लोअर आणि अप्पर केस अक्षरे.

तिसऱ्या भागातील कुरळे ब्रेसेस स्ट्रिंगमधील वर्णांची संख्या निर्धारित करतात जे ओळखले जाऊ शकतात परिभाषित पॅटर्न द्वारे उदा. या प्रकरणात 6 आणि “$” चिन्ह हे दुसऱ्या भागात परिभाषित केलेल्या पॅटर्नसह समाप्त होत असल्याची खात्री करा.

^[a-zA-Z]{6}$

परिस्थिती 2: "सुपर" ने सुरू होणारा आणि त्यानंतर व्हाईट स्पेस असलेल्या शब्दाची पडताळणी करण्यासाठी रेग्युलर एक्सप्रेशन वापरा, म्हणजे वाक्याच्या सुरुवातीला "सुपर" उपस्थित असल्यास ते सत्यापित करण्यासाठी.

आपण काही वापरकर्ता इनपुट वाचत आहोत असे गृहीत धरू आणि वापरकर्ता नेहमी त्यांच्या वाक्याची सुरुवात विशिष्ट शब्द, संख्या किंवा वर्णमालेने करतो याची खात्री करणे आवश्यक आहे. साध्या रेग्युलर एक्स्प्रेशनचा वापर करून हे अगदी सहज साध्य करता येते.

चला एक नमुना प्रोग्राम बघू आणि नंतर ही अभिव्यक्ती कशी लिहायची यावर तपशीलवार चर्चा करू.

 public static void Main(string[] args) { string patternText = @"^Super\s"; Regex reg = new Regex(patternText); //When pattern matches Console.WriteLine(reg.IsMatch("Super man")); //When pattern doesnt match Console.WriteLine(reg.IsMatch("Superhero")); }

आउटपुट2

सत्य

असत्य

स्पष्टीकरण

या उदाहरणात देखील, आम्ही जसे केले तसे कोड सेटअप वापरले पहिला या परिस्थितीतील रेग्युलर एक्स्प्रेशन पॅटर्नला “सुपर” ने सुरू होणार्‍या शब्दांच्या किंवा वाक्यांच्या संयोजनाशी जुळणे आवश्यक आहे.

^सुपर

म्हणून, जसे आपल्याला शब्दाच्या सुरुवातीपासून जुळायचे आहे मालिका, आपण “^” चिन्ह टाकून सुरुवात करू, त्यानंतर आपल्याला जुळवायचा नमुना देऊ, या प्रकरणात, “सुपर”. आता नमुना[१-९]

[^ श्रेणी] हे नकारार्थी वर्ण वर्ग दर्शवते. हे कोणत्याही गोष्टीशी जुळण्यासाठी वापरले जाते, ब्रॅकेटमध्ये दर्शविलेल्या श्रेणीमध्ये नाही.
\ हे विशिष्ट वर्णांशी जुळण्यासाठी वापरले जाते ज्यांचे स्वतःचे रेगेक्स चिन्ह असू शकतात. स्लॅशचा वापर विशेष अक्षरांशी त्यांच्या शाब्दिक स्वरुपात जुळण्यासाठी केला जातो.

गटबद्ध करणे

गोलाकार कंस किंवा कंसाचा वापर रेग्युलरचा एक भाग गट करण्यासाठी केला जाऊ शकतो एकत्र अभिव्यक्ती. हे वापरकर्त्याला एकतर अभिव्यक्तीसह क्वांटिफायर जोडण्याची परवानगी देते.

ग्रुपिंग अर्थ
( गट अभिव्यक्ती ) अभिव्यक्ती गटबद्ध करण्यासाठी गोल कंस वापरतात.
म्हणून वर्ण “+” चिन्ह वापरतील. त्यांना एकत्र करा आणि आम्हाला पहिल्या भागासाठी चिन्ह मिळेल.
(\w+)

कंसाने हे भागांमध्ये वेगळे केले. पुढील भाग डॉट चिन्ह आहे. बिंदू चिन्हाचा regex मध्ये अर्थ असल्याने, आम्ही त्याचा शाब्दिक अर्थ देण्यासाठी त्याच्या आधी बॅकस्लॅश वापरू. दोन्ही एकत्र करा आणि आम्ही regex चे पहिले दोन भाग कव्हर केले आहेत.

(\w+)\.

आता, तिसऱ्या आणि शेवटच्या भागासाठी, आम्ही "" ने विभक्त केलेले आवश्यक फाइल विस्तार थेट परिभाषित करू शकतो.केस वर्णमाला वर्ण. तुम्‍हाला हवे असल्‍यास तुम्‍ही अंकीय किंवा अप्पर केस अल्फाबेटिक वर्ण देखील समाविष्ट करू शकता परंतु या परिस्थितीसाठी, आम्ही लोअरकेस अक्षरांसह जाऊ.

आम्ही 2 ते 12 वर्णांच्या लांबीच्या लोअरकेस अक्षरांसाठी अभिव्यक्ती जोडल्यास, नंतर आमच्याकडे खालील अभिव्यक्ती असेल.

^[a-zA-Z0-9\._-]{5,25}.@.[a-z]{2,12}

आता, आमच्याकडे फक्त डोमेन विस्तारासाठी अभिव्यक्ती शिल्लक आहे, चौथ्या परिस्थितीप्रमाणे, आम्ही काही विशिष्ट डोमेन विस्तार हाताळू. तुम्हाला हवे असल्यास तुम्ही त्यांना गोलाकार कंसात बंद करून आणि त्यांना “

वरील स्क्रॉल करा