日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解C#正規(guī)表達式

C#正規(guī)表達式允許快速有效地處理文本。被處理的文本小到一個電子郵件地址,大到一個多行的輸入框內容。C#正規(guī)表達式的使用不僅允許你使用一個定義模式來校驗文本,而且還允許你從匹配一個給定模式的文本中提取數(shù)據(jù)。

為潞城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及潞城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、網(wǎng)站制作、潞城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

你可以把一個正規(guī)表達式當作是一種特別強有力的通配符。當我們看到象"SAMS*"這樣的表達式時,我們都會熟悉通配符,任何以單詞SAMS開頭的內容都是一個匹配的表達式。正規(guī)表達式能為你提供遠遠超過通配符的強有力的控制功能。

本節(jié)先向你簡短地介紹一下.NET框架中提供的支持使用C#正規(guī)表達式的類。有關正規(guī)表達式的更多信息,你可以參考《正規(guī)表達式快速參考手冊》或《精通正規(guī)表達式》的第二版。這些書將提供給你需要的信息以便創(chuàng)建你自己的正規(guī)表達式,而且還提供了常用正規(guī)表達式的一組列表。至于正規(guī)表達式本身已經(jīng)超出本文的討論范圍。

一.校驗輸入

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

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

在下列代碼中,使用一個普通正規(guī)表達式來測試電子郵件地址的有效性:

 
 
 
  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."); 

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

二.從輸入中提取數(shù)據(jù)

C#正規(guī)表達式的其它常見的用法是,根據(jù)表達式分析文本以及使用之來從用戶輸入中提取數(shù)據(jù)(稱作組匹配)。

正規(guī)表達式中包括一個特征叫組。一個組允許你把一個命名標識放到該正規(guī)表達式的一個特定節(jié)中。當你調用Match()來針對模式比較輸入數(shù)據(jù)時,其結果實際上把匹配分成一些組,允許你提取匹配每一個組的輸入的部分。

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

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

 
 
 
  1. string urlPattern = @"^(?\w+)://[^/]+?(?:\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); 

當你使用不帶有一個端口號的URL運行前面的代碼時,你會注意到,你沒有得到任何組值。這是因為,該輸入根本不匹配C#正規(guī)表達式。當不存在匹配時,你顯然無法從給定的組中提取有意義的數(shù)據(jù)。當你使用匹配該正規(guī)表達式的端口號的URL運行前面的代碼時,你將得到如下列文本所示的輸出結果:

 
 
 
  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 

【編輯推薦】

  1. C#字符串進行分割
  2. 全面測試C#字符串
  3. C# out和ref傳遞數(shù)組
  4. 淺析C#定義整型數(shù)組
  5. C#數(shù)據(jù)庫連接字符串

網(wǎng)頁名稱:詳解C#正規(guī)表達式
URL標題:http://m.5511xx.com/article/dhdgsod.html