自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#和.NET框架正則表達(dá)式

開(kāi)發(fā) 后端
這里介紹C#和.NET框架正則表達(dá)式,借助于C#和.NET框架,字符串成為該基類(lèi)庫(kù)的一個(gè)本機(jī)組成部分,并且提供給你大量的工具方法用于實(shí)現(xiàn)字符串的比較,操作,格式化等操作。

C#和.NET框架正則表達(dá)式

正則表達(dá)式的一種最常用的場(chǎng)所是用于使用一些預(yù)先定義的格式(例如,強(qiáng)制建立的規(guī)則用于確??诹钪邪囟ǖ氖蛊浜茈y被拆斷的字符)校驗(yàn)用戶輸入。這些規(guī)則被典型地定義為正則表達(dá)式。正則表達(dá)式也常用于校驗(yàn)簡(jiǎn)單的輸入,例如電子郵件地址和電話號(hào)碼。

C#和.NET框架提供的操作正則表達(dá)式的一個(gè)關(guān)鍵類(lèi)是RegEx類(lèi)。這個(gè)類(lèi)提供一個(gè)靜態(tài)的方法IsMatch,它返回一個(gè)布爾值指示是否指定的輸入字符串匹配一個(gè)給定的正則表達(dá)式。

在下列代碼中,使用一個(gè)普通正則表達(dá)式來(lái)測(cè)試電子郵件地址的有效性:

  1. string emailPattern = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|[ccc]  
  2. (([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";  
  3. Console.Write("Enter an e-mail address:");  
  4. string emailInput = Console.ReadLine();  
  5. bool match = Regex.IsMatch(emailInput, emailPattern);  
  6. if (match)  
  7. Console.WriteLine("E-mail address is valid.");  
  8. else  
  9. Console.WriteLine("Supplied input is not a valid e-mail address."); 

如果你搞不清楚這個(gè)正則表達(dá)式,別擔(dān)心。電子郵件模式的基本思想是,它需要一些數(shù)字字母字符,后面跟著一個(gè)@符號(hào),然后是一些字符組合,再后面跟著一個(gè)".",再往后至少跟著兩個(gè)字符。你可以以不同的輸入試驗(yàn)前面的代碼來(lái)看一下你得到什么結(jié)果。即使你不理解該正則表達(dá)式本身,只要知道它們的存在,那么你就可以把它使用于你的應(yīng)用程序中來(lái)校驗(yàn)輸入。

正則表達(dá)式的其它常見(jiàn)的用法是,根據(jù)表達(dá)式分析文本以及使用之來(lái)從用戶輸入中提取數(shù)據(jù)(稱(chēng)作組匹配)。

正則表達(dá)式中包括一個(gè)特征叫組。一個(gè)組允許你把一個(gè)命名標(biāo)識(shí)放到該正則表達(dá)式的一個(gè)特定節(jié)中。當(dāng)你調(diào)用Match()來(lái)針對(duì)模式比較輸入數(shù)據(jù)時(shí),其結(jié)果實(shí)際上把匹配分成一些組,允許你提取匹配每一個(gè)組的輸入的部分。

例如,在前面的例子中,我們創(chuàng)建了一個(gè)username,它允許我們提取在一個(gè)電子郵件地址中位于@符號(hào)前的所有數(shù)據(jù)。然后,當(dāng)執(zhí)行一個(gè)匹配時(shí),我們能夠使用正則表達(dá)式的命名組從輸入中提取該username。

下列代碼顯示怎樣從一個(gè)用戶在控制臺(tái)輸入的URL中提取協(xié)議名字和端口號(hào)。正則表達(dá)式的偉大在于,它們使用自己的語(yǔ)言;因此,它們不必依賴(lài)于C、C++、C#、VB.NET或任何其它語(yǔ)言。在下列代碼中的正則表達(dá)式來(lái)自于一個(gè)MSDN例子:

  1. string urlPattern = @"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/";  
  2. Console.WriteLine();  
  3. Console.Write("Enter a URL for data parsing: ");  
  4. string url = Console.ReadLine();  
  5. Regex urlExpression = new Regex(urlPattern, RegexOptions.Compiled);  
  6. Match urlMatch = urlExpression.Match(url);  
  7. Console.WriteLine("The Protocol you entered was " + urlMatch.Groups["proto"].Value);  
  8. Console.WriteLine("The Port Number you entered was " + urlMatch.Groups["port"].Value); 

當(dāng)你使用不帶有一個(gè)端口號(hào)的URL運(yùn)行前面的代碼時(shí),你會(huì)注意到,你沒(méi)有得到任何組值。這是因?yàn)椋撦斎敫静黄ヅ湔齽t表達(dá)式。當(dāng)不存在匹配時(shí),你顯然無(wú)法從給定的組中提取有意義的數(shù)據(jù)。當(dāng)你使用匹配該正則表達(dá)式的端口號(hào)的URL運(yùn)行前面的代碼時(shí),你將得到如下列文本所示的輸出結(jié)果:

  1. Entera URL for data parsing: http://server.com:2100/home.aspx  
  2. The Protocol you entered was http  
  3. The Port Number you entered was :2100 

在本文中,你已看到現(xiàn)在你有了自己的字符串例程庫(kù)。借助于C#和.NET框架,字符串成為該基類(lèi)庫(kù)的一個(gè)本機(jī)組成部分,并且提供給你大量的工具方法用于實(shí)現(xiàn)字符串的比較,操作,格式化等操作。你還看到,StringBuilder類(lèi)向你提供了一組易于使用的工具方法以便動(dòng)態(tài)地構(gòu)建字符串而不會(huì)帶來(lái)本地字符串連接的性能損失。

【編輯推薦】

  1. C#字符串操作步驟
  2. C#集成開(kāi)發(fā)環(huán)境淺析
  3. Visual C# .NET應(yīng)用程序
  4. C# TimeLabel控件詳解
  5. C#復(fù)合控件開(kāi)發(fā)技術(shù)
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-03 17:27:14

C#正則表達(dá)式

2009-08-07 15:16:10

C#正則表達(dá)式

2009-08-17 13:56:28

C#正則表達(dá)式入門(mén)

2024-12-16 07:33:45

C#正則表達(dá)式

2009-08-13 15:24:27

C#正則表達(dá)式

2009-08-11 13:00:41

C#正則表達(dá)式

2009-08-27 15:45:30

C#正則表達(dá)式

2009-08-20 16:23:32

C#正則表達(dá)式語(yǔ)法

2011-04-25 08:44:34

C#正則表達(dá)式

2009-08-20 13:09:28

C#正則表達(dá)式

2009-08-20 14:43:03

C#正則表達(dá)式Rege

2009-08-13 15:02:52

C#正則表達(dá)式引擎貪婪

2021-03-02 07:33:13

開(kāi)發(fā)C#字符

2009-08-14 15:50:45

C#正則表達(dá)式

2009-08-20 15:10:33

C#正則表達(dá)式

2009-08-20 15:06:51

C#正則表達(dá)式

2009-08-14 17:52:30

C#表達(dá)式工具

2009-08-20 15:02:41

C#正則表達(dá)式

2009-08-20 14:57:00

C#正則表達(dá)式

2018-09-27 15:25:08

正則表達(dá)式前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)