C# Regex ट्यूटोरियल: C# नियमित अभिव्यक्ति के हो

यो C# Regex ट्यूटोरियलले C# मा रेगुलर एक्सप्रेशन के हो, यसको सिन्ट्याक्स, Regex क्लास मेथडहरू र उदाहरणहरूको मद्दतले यी विधिहरू कसरी प्रयोग गर्ने भनेर व्याख्या गर्छ:

रेगुलर एक्सप्रेशन C# मा एक विशेष क्यारेक्टर ढाँचा मिलाउन प्रयोग गरिन्छ। रेगुलर एक्सप्रेशनहरू प्रयोग गरिन्छ जब प्रयोगकर्ताले केही दोहोर्याउने ढाँचा फेला पार्न वा डेटा प्रमाणीकरण गर्न वा डेटा ढाँचा जाँच गर्नको लागि पनि आवश्यक पर्दछ।

एक स्ट्रिङमा दिइएको क्यारेक्टर ढाँचासँग मेल खान्छ वा मिल्छ भनेर पत्ता लगाउन RegEx प्रयोग गरिन्छ। एक regex मुख्यतया एक क्यारेक्टर अनुक्रम हो जसले ढाँचालाई जनाउँछ।

एउटा ढाँचा संख्या, वर्ण, वा सबैको संयोजनबाट केही पनि हुन सक्छ। Regex व्यापक रूपमा प्रमाणीकरणको लागि प्रयोग गरिन्छ। पार्सिङ वा मिल्दो स्ट्रिङहरू, उदाहरणका लागि, स्ट्रिङले मुद्रा ढाँचा, फोन नम्बर, वा मिति ढाँचासँग मेल खान्छ भने पत्ता लगाउने।

C# 6 मा Regex कक्षा

Regex क्लास C# मा regex सञ्चालन गर्न प्रयोग गरिन्छ। यसले धेरै फरक विधिहरू समावेश गर्दछ जुन regex सँग सम्बन्धित विभिन्न कार्यहरू गर्न प्रयोग गर्न सकिन्छ।

यसलाई मिलान प्रदर्शन गर्न प्रयोग गर्न सकिने विधिहरू प्रयोग गरेर विशेष क्यारेक्टर अनुक्रम फेला पार्न ठूलो पाठलाई पार्स गर्न प्रयोग गर्न सकिन्छ। प्रतिस्थापन गर्नुहोस् वा क्यारेक्टर अनुक्रम विभाजित गर्न प्रयोग गर्न सकिन्छ।

रेजेक्स वर्ग नेमस्पेस भित्र अवस्थित छ; System.Text.RegularExpression। वर्गले प्यारामिटरको रूपमा क्यारेक्टर अनुक्रमको रूपमा स्ट्रिङ स्वीकार गर्दछ।

C# Regex विधिहरू

हामीले सिर्जना गरेको "^सुपर" सुपर, सुपरम्यान वा अलौकिकका सबै मानहरूसँग मेल खान सक्छ तर हामी "सुपर" शब्द मात्र चाहँदैनौं।

यसको अर्थ त्यहाँ शब्द पछि सेतो ठाउँ हुनुपर्छ। शब्दको अन्त्य र अर्को शब्दको सुरु चिन्ह लगाउनुहोस्। त्यसो गर्नको लागि हामी ढाँचामा "\s" प्रतीक थप्नेछौं र यसरी हाम्रो अन्तिम ढाँचालाई

^सुपर\s

दृश्य ३: वैध फाइल फेला पार्न नियमित अभिव्यक्ति प्रयोग गर्नुहोस्। छवि फाइल प्रकार एक्सटेन्सन भएका नामहरू।

अर्को महत्त्वपूर्ण वास्तविक-समय परिदृश्य जुन विकासकर्ताहरूले प्राय: फाइल प्रकारहरूको प्रमाणीकरणको सामना गर्छन्। मानौं कि हामीसँग 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

True

True

False

False

स्पष्टीकरण

यहाँ हामीले एकसँग मेल खानुपर्छ फाइल नाम। एउटा मान्य फाइल नाम तीन भागहरू मिलेर बनेको हुन्छ ( फाइलको नाम +। + फाइल एक्सटेन्सन )। हामीले सबै तीन भागहरू मिलाउन नियमित अभिव्यक्ति सिर्जना गर्न आवश्यक छ। पहिलो भाग अर्थात् फाइलको नाम मिलाएर सुरु गरौं। फाइलको नाममा अल्फान्यूमेरिक र विशेष क्यारेक्टरहरू हुन सक्छन्।

पहिले चर्चा गरिएझैं "\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)$

परिदृश्य ५: प्रमाणित गर्न नियमित अभिव्यक्ति प्रयोग गर्नुहोस्इमेल आईडी ढाँचा

मानौं हाम्रो वेबपेजमा साइन-इन फारम छ जसले प्रयोगकर्ताहरूलाई उनीहरूको इमेल ठेगाना प्रविष्ट गर्न सोध्छ। स्पष्ट कारणहरूका लागि, हामी हाम्रो फारम अवैध इमेल ठेगानाहरूसँग अगाडि बढ्न चाहँदैनौं। प्रयोगकर्ताद्वारा प्रविष्ट गरिएको इमेल ठेगाना सही छ वा छैन भनी प्रमाणित गर्न हामी नियमित अभिव्यक्ति प्रयोग गर्न सक्छौं।

तल दिइएको एउटा इमेल ठेगाना मान्य गर्नको लागि सरल कार्यक्रम हो।

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]")); }

आउटपुट

True

True

False

स्पष्टीकरण

A मान्य इमेल ठेगानामा अक्षरहरू, अंकहरू, र केही विशेष क्यारेक्टरहरू जस्तै डट (.), ड्यास (-), र अन्डरस्कोरहरू (_) पछि "@" चिन्हहरू छन् जुन त्यसपछि डोमेन नाम र डोमेन विस्तारले पछ्याउँछ।

यसैले, हामी इमेल ठेगानालाई चार भागहरूमा विभाजन गर्न सक्छौं जस्तै इमेल पहिचानकर्ता, “@” प्रतीक, डोमेन नाम, र अन्तिम डोमेन विस्तार।

को लागि नियमित अभिव्यक्ति लेखेर सुरु गरौं। पहिलो भाग। यो केहि विशेष वर्णहरु संग अल्फा संख्यात्मक हुन सक्छ। मान्नुहोस् कि हामीसँग 5 देखि 25 क्यारेक्टर सम्मको अभिव्यक्ति साइज छ। हामीले यसलाई पहिले कसरी लेख्यौं (इमेल परिदृश्यमा) जस्तै, हामी निम्न अभिव्यक्तिको साथ आउन सक्छौं।

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

अब, दोस्रो भागमा जाँदैछौं। यो तुलनात्मक रूपमा सजिलो छ किनकि हामीले केवल एउटा प्रतीक अर्थात् "@" सँग मेल खानुपर्छ। यसलाई माथिको अभिव्यक्तिमा थप्दा हामीलाई प्राप्त हुन्छ।

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

तेस्रो भागमा सर्दै अर्थात् डोमेन नाम सधैं तल्लो तहको श्रृंखला हुनेछ।मिल्दो शब्दहरू, अक्षरहरू, वेबसाइट ठेगानाहरू, इमेल आईडीहरू, र फाइल प्रकारहरू र विस्तारहरू पनि।

यी परिदृश्यहरू कोडका असंख्य लाइनहरू नलिइकन प्रयोगकर्ता इनपुटहरूको वास्तविक-समय प्रमाणीकरणमा धेरै उपयोगी छन् र यसले समय बचत गर्न मद्दत गर्दछ। जटिलता कम गर्नुहोस्। यी उदाहरणहरू प्रयोगकर्ताहरूलाई तिनीहरूको आफ्नै नियमित अभिव्यक्तिहरूको सेट सिर्जना गर्न मार्गदर्शन गर्न प्रयोग गरिएको छ र यसैले उनीहरूलाई अन्य धेरै फरक परिदृश्यहरू ह्यान्डल गर्न मद्दत गर्दछ।

Regex सरल हुन सक्छ वर्णमाला वा अंकहरू प्रयोग गरी दिइएको श्रृंखलासँग मिलाउन। जटिल ढाँचाहरू प्रमाणित गर्न वा क्यारेक्टर श्रृंखलामा विशिष्ट ढाँचा खोज्नको लागि विशेष क्यारेक्टरहरू, क्वान्टीफायरहरू, क्यारेक्टर क्लासहरू, इत्यादिको संयोजन प्रयोग गरेर क्यारेक्टरहरू वा जटिल।

संक्षेपमा, नियमित अभिव्यक्ति एकदमै एक हो एक प्रोग्रामरको लागि शक्तिशाली उपकरण र कोडको मात्रा घटाउन मद्दत गर्दछ जुन डेटा मिलान वा प्रमाणीकरण कार्यमा पूरा गर्न आवश्यक छ।

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

आज

माथिको कोडको लागि स्पष्टीकरण:

कार्यक्रमको सुरुमा, हामीले एउटा वस्तु सिर्जना गरेका छौं र हामीले प्रयोग गर्ने ढाँचाको लागि। त्यसपछिको स्ट्रिङ इनपुटमा मिल्दो कोडको लागि, हामीले सुरुमा चीजहरू सरल राख्नको लागि पाठ ढाँचा प्रयोग गरेका छौं तर यदि तपाईं सहज हुनुहुन्छ भने तपाईंले नियमित अभिव्यक्ति ढाँचाहरू प्रयोग गर्न सुरु गर्न सक्नुहुन्छ। (हामी यस ट्यूटोरियलमा अगाडि बढ्दै जाँदा नियमित अभिव्यक्ति ढाँचाको विस्तारमा छलफल गर्नेछौं)

त्यसपछि, हामीले इनपुट स्ट्रिङसँग निर्दिष्ट वस्तुको रूपमा घोषणा गरेको कारक इनपुट गर्न म्याच स्ट्रिङ प्रयोग गर्नेछौं र यदि यो मेल खान्छ भने। त्यसपछि यो false मा फर्किनेछ।

हामीले प्रयोग गरेको अर्को विधि IsMethod(string input, int index) हो। यो विधिले दुई-प्यारामिटर स्वीकार गर्छ, र यहाँ हामी इनपुट स्ट्रिङ र अनुक्रमणिका प्रदान गर्छौं जहाँबाट खेल सुरु हुन्छ। उदाहरणका लागि, यहाँ हामी इनपुट स्ट्रिङको सुरुबाट मिल्दो सुरु गर्न चाहन्थ्यौं।

त्यसपछि हामीले IsMatch(स्ट्रिङ इनपुट, स्ट्रिङ ढाँचा) को प्रयोग प्रदर्शन गर्यौं। यहाँ हामीले इनपुट स्ट्रिङ प्रदान गर्यौं त्यसपछि हामी पत्ता लगाउन चाहन्थ्यौं कि ढाँचा पाठ इनपुटमा अवस्थित छ वा छैन। यदि यो अवस्थित छ भने यो सत्य फर्किनेछ (हाम्रो अवस्थामा जस्तै) अन्यथा यो गलत फर्किनेछ।

अर्को तरिका जुन हामीले छलफल गर्यौं प्रतिस्थापन गरिएको छ। यो विधि प्रोग्रामहरूमा धेरै उपयोगी छ जहाँ तपाइँ इनपुट डेटामा परिवर्तन गर्न चाहनुहुन्छवा अवस्थित डाटाको ढाँचा परिवर्तन गर्नुहोस्।

यहाँ हामी दुई प्यारामिटरहरू प्रदान गर्दछौं, पहिलो इनपुट स्ट्रिङ हो र दोस्रो स्ट्रिङ हो जुन अघिल्लो स्ट्रिङ बदल्न प्रयोग गर्न सकिन्छ। यो विधिले हामीले पहिले परिभाषित गरेको regex वस्तुमा परिभाषित ढाँचा पनि प्रयोग गर्दछ।

अर्को महत्त्वपूर्ण विधि जुन हामीले प्रयोग गर्यौं, त्यो विभाजन हो। यो विधि केही पुनरावर्ती ढाँचाहरूमा आधारित दिइएको स्ट्रिङ विभाजन गर्न प्रयोग गरिन्छ। यहाँ, हामीले "Hello_World_Today" स्ट्रिङ प्रदान गरेका छौं।

मानौं हामी दिइएको स्ट्रिङबाट अन्डरस्कोर हटाएर सबस्ट्रिङहरू प्राप्त गर्न चाहन्छौं। यसको लागि, हामी इनपुट प्यारामिटर निर्दिष्ट गर्छौं र त्यसपछि हामीले विभाजन बिन्दुको रूपमा प्रयोग गर्न आवश्यक पर्ने ढाँचा दिन्छौं। विधिले एरे फर्काउँछ र हामी सबै स्ट्रिङहरू पुन: प्राप्त गर्न foreach जस्तो साधारण लूप प्रयोग गर्न सक्छौं।

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

विशेष क्यारेक्टर, क्वान्टीफायर, क्यारेक्टर क्लासहरू जस्ता विभिन्न सिन्ट्याक्सहरू छन्। इत्यादि जुन दिइएको इनपुटबाट निश्चित ढाँचा मिलाउन प्रयोग गर्न सकिन्छ।

ट्यूटोरियलको यस भागमा, हामी regex द्वारा प्रस्ताव गरिएको वाक्य रचनामा गहिरो डुब्नेछौं र केही वास्तविक जीवन परिदृश्यहरू समाधान गर्ने प्रयास गर्नेछौं। तिनीहरूलाई प्रयोग गर्दै। हामीले अगाडि बढ्नु अघि, निश्चित गर्नुहोस् कि तपाईंले regex को आधारभूत विचार र regex वर्ग भित्र उपलब्ध विभिन्न विधिहरू प्राप्त गर्नुभएको छ।

विशेष क्यारेक्टरहरू

रेजेक्समा विशेष क्यारेक्टरहरू धेरै फरक अर्थहरू तोक्न प्रयोग गरिन्छ। ढाँचामा। अब हामी हेर्नेछौंRegex.3

विशेष वर्णहरू अर्थ
मा व्यापक रूपमा प्रयोग गरिएका केही विशेष वर्णहरू र तिनीहरूको अर्थ ^ यो सबैभन्दा व्यापक रूपमा प्रयोग हुने वाक्य रचना हो। यसले शुरुवात, शब्द वा ढाँचालाई इनपुट पाठको सुरुबाट मिलाउन सुरु गरेपछि जनाउँछ।
$ यो चिन्ह अन्त्यबाट शब्दहरू मिलाउन प्रयोग गरिन्छ। तार को। यो प्रतीक भन्दा पहिले संकेत गरिएका शब्दहरू/ढाँचाहरू स्ट्रिङको अन्त्यमा रहेका शब्दहरूसँग मेल खानेछन्।
। (डट) डटलाई दिइएको स्ट्रिङमा एक पटक हुने एकल क्यारेक्टर मिलाउन प्रयोग गरिन्छ।
\n यो नयाँको लागि प्रयोग गरिन्छ। रेखा।
\d र \D अंक क्यारेक्टरसँग मिलाउन लोअर केस 'd' प्रयोग गरिन्छ र माथिल्लो अक्षर 'D' गैर-अङ्कसँग मिलाउन प्रयोग गरिन्छ। क्यारेक्टरहरू।
\s र \S लोअर केस 's' सेतो स्पेसहरू मिलाउन प्रयोग गरिन्छ र माथिल्लो केस 'S' गैर-सेतो स्पेस मिलाउन प्रयोग गरिन्छ। .
\w र \W अल्फान्युमेरिक/अण्डरस्कोर क्यारेक्टरहरू मिलाउन लोअर केस 'w' प्रयोग गरिन्छ र माथिल्लो अक्षर 'W' गैर-शब्दसँग मिलाउन प्रयोग गरिन्छ। क्यारेक्टरहरू।

क्वान्टीफायर सिन्ट्याक्स

क्वान्टीफायर सिन्ट्याक्स मिल्दो मापदण्ड गणना गर्न वा परिमाण गर्न प्रयोग गरिन्छ। उदाहरणका लागि, यदि तपाइँ जाँच गर्न चाहनुहुन्छ भने एक विशेष स्ट्रिङमा एक वा बढी पटक वर्णमाला समावेश छ। रेगुलर एक्स्प्रेशनमा सामान्यतया प्रयोग हुने केही क्वान्टीफायरहरू हेरौं।

Quantifierसिन्ट्याक्स अर्थ
* यो प्रतीक अघिल्लो वर्णसँग मिलाउन प्रयोग गरिन्छ।
+ यो प्रतीक पङ्क्तिमा एक वा धेरै वर्णहरू मिलाउन प्रयोग गरिन्छ।
{n} घुमिएको भित्रको संख्यात्मक अंक कोष्ठकहरू घुमाउरो कोष्ठकहरू भित्र संख्यात्मक द्वारा परिभाषित अघिल्लो वर्णको संख्यासँग मिलाउन प्रयोग गरिन्छ।
{n,} कर्ली ब्रेसेस भित्रको संख्या र यो प्रतीक प्रयोग गरिन्छ यो कम्तिमा n (अर्थात ब्रेसेस भित्रको संख्यात्मक मान) सँग मेल खान्छ भन्ने कुरा सुनिश्चित गर्न।
{n, m} यो प्रतीक को अघिल्लो वर्णबाट मिलाउन प्रयोग गरिन्छ। n पटकको संख्या देखि m पटकको संख्या।
? यस प्रतीकले अघिल्लो वर्णहरूलाई वैकल्पिक रूपमा मिलाउँछ।

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

क्यारेक्टर क्लासलाई क्यारेक्टर सेटको रूपमा पनि चिनिन्छ, र यो रेजेक्स इन्जिनलाई धेरै क्यारेक्टरहरू मध्ये एकल मिल्दो खोज्न भन्न प्रयोग गरिन्छ। क्यारेक्टर क्लासले एउटा क्यारेक्टरसँग मात्र मेल खान्छ र क्यारेक्टर सेट भित्र संलग्न क्यारेक्टरहरूको क्रमले फरक पार्दैन।

क्यारेक्टर क्लास अर्थ
[ दायरा ] वर्ग कोष्ठक प्रतीक वर्णहरूको दायरासँग मिलाउन प्रयोग गरिन्छ। उदाहरणका लागि, हामी यसलाई [a-z]

जस्तै कोष्ठक भित्र दायरा संलग्न गरेर वर्णमाला “a” देखि “z” सम्मको कुनै पनि क्यारेक्टर परिभाषित गर्न प्रयोग गर्न सक्छौं। 9" संकेत गरेरकेही वास्तविक-समय उदाहरणहरू प्रयोग गरेर अभिव्यक्तिहरू।

परिदृश्य 1: यदि इनपुट स्ट्रिङ 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")); }

आउटपुट

True

False

0 स्पष्टीकरण

यस उदाहरणमा, हामी इनपुट स्ट्रिङलाई प्रमाणित गर्ने प्रयास गर्दैछौं, यसमा छ-अङ्कको वर्णमाला वर्णहरू छन् कि छैनन् भनी जाँच गर्न। क्यारेक्टरहरू तल्लो र माथिल्लो केसमा दुवै हुन सक्छन्, त्यसैले हामीले त्यसलाई पनि ध्यानमा राख्नुपर्छ।

त्यसैले, यहाँ हामीले चल "patternText" मा नियमित अभिव्यक्ति ढाँचा परिभाषित गर्यौं र त्यसपछि यसलाई regex वस्तुमा पास गर्यौं। । अब, कोडको अर्को लाइनहरू एकदम सरल छन्, हामीले नियमित अभिव्यक्ति र इनपुट स्ट्रिङको तुलना गर्न IsMatch विधि प्रयोग गर्यौं।

हामीले बनाएको नियमित अभिव्यक्तिलाई हेरौं। अभिव्यक्ति (^[a-zA-Z]{6}$) ४ फरक भागहरू मिलेर बनेको छ। “^”, “[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")); }

आउटपुट

True

False

स्पष्टीकरण

यस उदाहरणमा पनि, हामीले समान कोड सेटअप प्रयोग गर्यौं। पहिलो। यस परिदृश्यमा रेगुलर एक्स्प्रेशन ढाँचालाई "सुपर" बाट सुरु हुने शब्द वा वाक्यहरूको संयोजनसँग मिल्नुपर्छ।

^सुपर

त्यसोभए, हामी शब्दको सुरुबाटै मिलाउन चाहन्छौं। श्रृंखला, हामी "^" प्रतीक राखेर सुरु गर्नेछौं, त्यसपछि हामीले मिलाउन चाहेको ढाँचा दिनेछौं, यस अवस्थामा, "सुपर"। अब ढाँचा[१-९]

[^ दायरा] यसले नेगेट क्यारेक्टर वर्गलाई जनाउँछ। यो कुनै पनि कुरासँग मिलाउन प्रयोग गरिन्छ, कोष्ठक भित्रको दायरामा नभई।
\ यो विशेष वर्णहरू मिलाउन प्रयोग गरिन्छ जसको आफ्नै regex प्रतीकहरू हुन सक्छन्। विशेष वर्णहरूलाई तिनीहरूको शाब्दिक रूपमा मिलाउन स्ल्याश प्रयोग गरिन्छ।

समूहीकरण

गोलाकार कोष्ठक वा कोष्ठकहरू नियमित रूपमा समूहबद्ध गर्न प्रयोग गर्न सकिन्छ। सँगै अभिव्यक्ति। यसले प्रयोगकर्तालाई अभिव्यक्तिको साथ क्वान्टीफायर थप्न अनुमति दिन्छ।

समूहीकरण अर्थ
( समूह अभिव्यक्ति ) राउन्ड कोष्ठकहरू अभिव्यक्तिलाई समूहबद्ध गर्न प्रयोग गरिन्छ।
अक्षरहरूले "+" प्रतीक प्रयोग गर्नेछ। तिनीहरूलाई जोड्नुहोस् र हामीले पहिलो भागको लागि प्रतीक प्राप्त गर्छौं।
(\w+)

कोष्ठकले यसलाई भागहरूमा अलग गर्‍यो। अर्को भाग डट प्रतीक हो। डट प्रतीकको अर्थ रेजेक्समा भएको हुनाले, हामी यसलाई शाब्दिक अर्थ दिनको लागि ब्याकस्ल्याश प्रयोग गर्नेछौं। दुबैलाई जोड्नुहोस् र हामीले regex को पहिलो दुई भागहरू कभर गरेका छौं।

(\w+)\.

अब, तेस्रो र अन्तिम भागको लागि, हामी सीधै आवश्यक फाइल एक्सटेन्सनहरूलाई "द्वारा विभाजित" परिभाषित गर्न सक्छौं।केस वर्णमाला वर्णहरू। यदि तपाइँ चाहानुहुन्छ भने तपाइँ संख्यात्मक वा माथिल्लो अक्षर वर्णमाला वर्णहरू पनि समावेश गर्न सक्नुहुन्छ तर यस परिदृश्यको लागि, हामी सानो अक्षरमा जान्छौं।

यदि हामीले 2 देखि 12 वर्णहरू सम्मको लम्बाइको सानो अक्षरको लागि अभिव्यक्ति थप्यौं भने, त्यसपछि हामीसँग निम्न अभिव्यक्ति हुनेछ।

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

अब, हामीसँग डोमेन विस्तारको अभिव्यक्ति मात्र बाँकी छ, चौथो परिदृश्य जस्तै, हामी केही विशिष्ट डोमेन विस्तारहरू ह्यान्डल गर्नेछौं। यदि तपाइँ चाहनुहुन्छ भने तपाइँ तिनीहरूलाई थप्न सक्नुहुन्छ गोलाकार कोष्ठक भित्र संलग्न गरेर र तिनीहरूलाई "

माथि स्क्रोल गर्नुहोस्