這篇文章主要為大家展示了“C#中如何使用正規(guī)表達(dá)式”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C#中如何使用正規(guī)表達(dá)式”這篇文章吧。
成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊和靠譜的建站技術(shù),10余年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都成百上千客戶提供網(wǎng)頁設(shè)計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),品牌網(wǎng)站制作,同時也為不同行業(yè)的客戶提供成都做網(wǎng)站、網(wǎng)站制作的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)公司。
一.校驗(yàn)輸入
正規(guī)表達(dá)式的一種最常用的場所是用于使用一些預(yù)先定義的格式(例如,強(qiáng)制建立的規(guī)則用于確??诹钪邪囟ǖ氖蛊浜茈y被拆斷的字符)校驗(yàn)用戶輸入。這些規(guī)則被典型地定義為正規(guī)表達(dá)式。正規(guī)表達(dá)式也常用于校驗(yàn)簡單的輸入,例如電子郵件地址和電話號碼。
.NET框架提供的操作正規(guī)表達(dá)式的一個關(guān)鍵類是RegEx類。這個類提供一個靜態(tài)的方法IsMatch,它返回一個布爾值指示是否指定的輸入字符串匹配一個給定的正規(guī)表達(dá)式。
在下列代碼中,使用一個普通正規(guī)表達(dá)式來測試電子郵件地址的有效性:
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.");
如果你搞不清楚這個正規(guī)表達(dá)式,別擔(dān)心。電子郵件模式的基本思想是,它需要一些數(shù)字字母字符,后面跟著一個@符號,然后是一些字符組合,再后面跟著一個".",再往后至少跟著兩個字符。你可以以不同的輸入試驗(yàn)前面的代碼來看一下你得到什么結(jié)果。即使你不理解該正規(guī)表達(dá)式本身,只要知道它們的存在,那么你就可以把它使用于你的應(yīng)用程序中來校驗(yàn)輸入。
二.從輸入中提取數(shù)據(jù)
C#正規(guī)表達(dá)式的其它常見的用法是,根據(jù)表達(dá)式分析文本以及使用之來從用戶輸入中提取數(shù)據(jù)(稱作組匹配)。
正規(guī)表達(dá)式中包括一個特征叫組。一個組允許你把一個命名標(biāo)識放到該正規(guī)表達(dá)式的一個特定節(jié)中。當(dāng)你調(diào)用Match()來針對模式比較輸入數(shù)據(jù)時,其結(jié)果實(shí)際上把匹配分成一些組,允許你提取匹配每一個組的輸入的部分。
例如,在前面的例子中,我們創(chuàng)建了一個username,它允許我們提取在一個電子郵件地址中位于@符號前的所有數(shù)據(jù)。然后,當(dāng)執(zhí)行一個匹配時,我們能夠使用正規(guī)表達(dá)式的命名組從輸入中提取該username。
下列代碼顯示怎樣從一個用戶在控制臺輸入的URL中提取協(xié)議名字和端口號。正規(guī)表達(dá)式的偉大在于,它們使用自己的語言;因此,它們不必依賴于C、C++、C#、VB.NET或任何其它語言。在下列代碼中的正規(guī)表達(dá)式來自于一個MSDN例子:
string urlPattern = @"^(?\w+)://[^/]+?(? :\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);
當(dāng)你使用不帶有一個端口號的URL運(yùn)行前面的代碼時,你會注意到,你沒有得到任何組值。這是因?yàn)?,該輸入根本不匹配C#正規(guī)表達(dá)式。當(dāng)不存在匹配時,你顯然無法從給定的組中提取有意義的數(shù)據(jù)。當(dāng)你使用匹配該正規(guī)表達(dá)式的端口號的URL運(yùn)行前面的代碼時,你將得到如下列文本所示的輸出結(jié)果:
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#中如何使用正規(guī)表達(dá)式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!