您好,登錄后才能下訂單哦!
本篇內容主要講解“C#和.NET框架正則表達式怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#和.NET框架正則表達式怎么理解”吧!
C#和.NET框架正則表達式
正則表達式的一種最常用的場所是用于使用一些預先定義的格式(例如,強制建立的規則用于確保口令中包含特定的使其很難被拆斷的字符)校驗用戶輸入。這些規則被典型地定義為正則表達式。正則表達式也常用于校驗簡單的輸入,例如電子郵件地址和電話號碼。
C#和.NET框架提供的操作正則表達式的一個關鍵類是RegEx類。這個類提供一個靜態的方法IsMatch,它返回一個布爾值指示是否指定的輸入字符串匹配一個給定的正則表達式。
在下列代碼中,使用一個普通正則表達式來測試電子郵件地址的有效性:
string emailPattern = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|[ccc] (([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; Console.Write("Enter an e-mail address:"); string emailInput = Console.ReadLine(); bool match = Regex.IsMatch(emailInput, emailPattern); if (match) Console.WriteLine("E-mail address is valid."); else Console.WriteLine("Supplied input is not a valid e-mail address.");
如果你搞不清楚這個正則表達式,別擔心。電子郵件模式的基本思想是,它需要一些數字字母字符,后面跟著一個@符號,然后是一些字符組合,再后面跟著一個".",再往后至少跟著兩個字符。你可以以不同的輸入試驗前面的代碼來看一下你得到什么結果。即使你不理解該正則表達式本身,只要知道它們的存在,那么你就可以把它使用于你的應用程序中來校驗輸入。
正則表達式的其它常見的用法是,根據表達式分析文本以及使用之來從用戶輸入中提取數據(稱作組匹配)。
正則表達式中包括一個特征叫組。一個組允許你把一個命名標識放到該正則表達式的一個特定節中。當你調用Match()來針對模式比較輸入數據時,其結果實際上把匹配分成一些組,允許你提取匹配每一個組的輸入的部分。
例如,在前面的例子中,我們創建了一個username,它允許我們提取在一個電子郵件地址中位于@符號前的所有數據。然后,當執行一個匹配時,我們能夠使用正則表達式的命名組從輸入中提取該username。
下列代碼顯示怎樣從一個用戶在控制臺輸入的URL中提取協議名字和端口號。正則表達式的偉大在于,它們使用自己的語言;因此,它們不必依賴于C、C++、C#、VB.NET或任何其它語言。在下列代碼中的正則表達式來自于一個MSDN例子:
string urlPattern = @"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/"; Console.WriteLine(); Console.Write("Enter a URL for data parsing: "); string url = Console.ReadLine(); Regex urlExpression = new Regex(urlPattern, RegexOptions.Compiled); Match urlMatch = urlExpression.Match(url); Console.WriteLine("The Protocol you entered was " + urlMatch.Groups["proto"].Value); Console.WriteLine("The Port Number you entered was " + urlMatch.Groups["port"].Value);
當你使用不帶有一個端口號的URL運行前面的代碼時,你會注意到,你沒有得到任何組值。這是因為,該輸入根本不匹配正則表達式。當不存在匹配時,你顯然無法從給定的組中提取有意義的數據。當你使用匹配該正則表達式的端口號的URL運行前面的代碼時,你將得到如下列文本所示的輸出結果:
Entera URL for data parsing: http://server.com:2100/home.aspx The Protocol you entered was http The Port Number you entered was :2100
到此,相信大家對“C#和.NET框架正則表達式怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。