成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

概述VB.NET正則表達式簡化程序代碼

開發(fā) 后端
這里介紹在VB.NET正則表達式必須先引入命名空間System.Text.RegularExpressions,該命名空間包含一下七個類:Regex、Match、MatchCollection、GroupCollection、CaptureCollection、Group、Capture。

經(jīng)過長時間學(xué)習(xí)VB.NET正則表達式,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。在通常的程序設(shè)計中,對字符串的操作是不可缺少的部分。例如,我們經(jīng)常需要從字符串中尋找特定的部分,或者對某一部分進行替換、刪除等等。使用傳統(tǒng)的靜態(tài)字符串操作方法只能查找字符串中固定不變的部分,缺乏靈活性。而用正則表達式則可以規(guī)定待查找字符串的模式,查找同一類型的字符串,例如要在EMAIL格式的字符串(如lzcarl@126.com)中分解出用戶名和服務(wù)器名,可以定義如下的正則表達式(?<user>[^@]+)@(?<host>.+),然后使用相應(yīng)的解析器進行解析,得到兩個分組user組和host組,user組里存儲用戶名lzcarl,host組里存放服務(wù)器名126.com,而用傳統(tǒng)的方法是很難實現(xiàn)這種分解的。由此可見,作為一種字符串處理方式,正則表達式的靈活與強大確實是傳統(tǒng)字符串處理方式無法相比的。

1、VB.NET正則表達式處理類
在VB.NET正則表達式必須先引入命名空間System.Text.RegularExpressions,該命名空間包含一下七個類:Regex、Match、MatchCollection、GroupCollection、CaptureCollection、Group、Capture。

Regex類表示不可變(只讀)正則表達式類,設(shè)置待匹配字符串的模式。Match 類表示正則表達式匹配操作的結(jié)果。MatchCollection 類表示成功的非重疊匹配的序列,即匹配后得到的字符串集合。在正則表達式中應(yīng)用最多的就是這三個類。

使用正則表達式類的通用方法是:
首先生成一個Regex類的實例,并在傳入?yún)?shù)中輸入正則表達式的模式,然后使用Regex類的相應(yīng)方法,如IsMatch(判斷是否匹配)、Match(返回匹配得到的字符串)等等。
當然也可以使用Regex類的共享方法而不實例化Regex類——IsMatch、Match等等(即上述方法的共享版本)獲得所需要的結(jié)果。這種方法適于匹配模式不固定,匹配次數(shù)不多的情況。
接下來給出一個VB.NET中正則表達式的應(yīng)用。

2、時間解析程序
該程序讀取用戶輸入的時間長度字符串(如XX小時XX分鐘XX秒),把它解析,***用秒表示該時間長度(XX秒)。程序界面如下:
 
當用戶在文本框中輸入時間值后,點計算后就會在“結(jié)果”后面得到用秒表示的時間值。該程序首先從文本框中讀入時間值,然后分別查找其中的小時、分鐘、秒部分,在這里就使用了正則表達式對時間表達式進行解析。如小時數(shù)的正則表達式可表示為“[0-9]+小時”。“[0-9]”表示0到9間的任意數(shù)字都可以被匹配,“+”表示該字符可以出現(xiàn)一次或更多,因此“[0-9]+”即可以匹配任意長度整數(shù)(關(guān)于正則表達式的語法可以參見MSDN的相應(yīng)部分),用這個字符串模式就可以查找出表達式中的小時部分。在分別匹配得到小時數(shù)、分鐘數(shù)和秒數(shù)后計算得到總的秒數(shù),并顯示在“結(jié)果”后面。
程序包括一個計算時間的正則表達式工具類TimeRegex,及Form1界面類。

TimeRegex類代碼如下:

  1. ImportsSystem.Text.RegularExpressions  
  2. PublicClassTimeRegex  
  3. PrivatehourAsInteger=0 
  4. PrivateminuteAsInteger=0 
  5. PrivatesecondAsInteger=0 
  6. PrivatetotalTimeAsInteger=0 
  7. PrivateexpAsString'時間表達式  
  8.  
  9. SubNew()  
  10. EndSub  
  11.  
  12. '根據(jù)時間文本解析出其中的數(shù)字部分  
  13. PrivateFunctiongetTime(ByValtimeKindAsString)AsString  
  14. DimtimeMatchAsMatch  
  15. DimtimeAsString  
  16. '先從中解析出包含數(shù)字和中文的部分  
  17. timeMatch=Regex.Match(exp,timeKind)  
  18. IftimeMatch.Success=TrueThen 
  19. time=timeMatch.Value  
  20. '然后從得到的文本中解析出數(shù)字  
  21. ReturnRegex.Match(time,"[0-9]+").Value  
  22. Else  
  23. Return"0"  
  24. EndIf  
  25. EndFunction  
  26.  
  27. '根據(jù)傳入的表達式計算總時間  
  28. PublicFunctiongetTotalTime(ByVal_expAsString)AsInteger  
  29. exp=_exp 
  30. '分別計算出小時,分鐘,秒,然后得到總時間  
  31. hour=Integer.Parse(getTime("[0-9]+小時"))  
  32. minute=Integer.Parse(getTime("[0-9]+分鐘"))  
  33. second=Integer.Parse(getTime("[0-9]+秒"))  
  34. totalTime=hour*3600+minute*60+second  
  35. ReturntotalTime  
  36. EndFunction  
  37. EndClass  
  38.  
  39. Form1類代碼如下:  
  40. PublicClassForm1  
  41. InheritsSystem.Windows.Forms.Form  
  42. PrivateregexAsNewTimeRegex  
  43.  
  44. Windows窗體設(shè)計器生成代碼省略  
  45.  
  46. PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click  
  47. SecondTime.Text=regex.getTotalTime  
  48. (timeExp.Text).ToString&"秒"  
  49. EndSub  
  50. EndClass 

3、結(jié)論
合理的使用VB.NET正則表達式對于簡化程序代碼、提高程序的復(fù)用性與健壯性有著很大的幫助。可以說正則表達式是程序員必須掌握的幾種武器之一。而.NET中對正則表達式也有較好的支持,以后在處理字符串的時候,不妨使用一下正則表達式,一定可以起到事半功倍的效果。

【編輯推薦】

  1. VB.NET水印類整合水印技術(shù)
  2. 實例講述VB.NET使用Log4Net
  3. 淺析利用VB.NET啟動Smartphone常規(guī)方法
  4. 三分鐘學(xué)會VB.NET轉(zhuǎn)換形態(tài)
  5. 自己動手改寫VB.NET內(nèi)存指針
責(zé)任編輯:佚名 來源: 賽迪網(wǎng)
相關(guān)推薦

2010-01-07 13:29:00

VB.NET正則表達式

2009-10-26 16:12:19

VB.NET正則表達式

2009-10-26 15:33:27

VB.NET正則表達式

2009-10-26 16:01:03

VB.NET正則表達式

2009-10-28 09:02:41

VB.NET開發(fā)正則表

2010-01-22 15:09:11

VB.NET下載程序

2009-10-26 16:49:27

VB.NET正則表達式

2009-08-07 14:24:31

.NET正則表達式

2009-08-19 14:48:57

正則表達式性能

2012-05-08 13:29:01

VB

2010-01-07 15:29:59

VB.NET表達式

2009-08-07 14:31:40

.NET正則表達式基礎(chǔ)

2012-01-12 10:21:57

正則表達式

2018-09-27 15:25:08

正則表達式前端

2020-09-04 09:16:04

Python正則表達式虛擬機

2010-01-05 17:46:04

.NET Framew

2024-09-14 09:18:14

Python正則表達式

2009-08-24 17:14:41

正則表達式C#和.NET框架

2009-03-24 08:56:15

正則表達式格式清理字符串

2016-11-10 16:21:22

Java 正則表達式
點贊
收藏

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

主站蜘蛛池模板: 日韩在线视频一区 | 久久蜜桃av一区二区天堂 | 一级国产精品一级国产精品片 | 欧美成人精品一区二区三区 | 久色激情 | 精品国产乱码久久久久久蜜臀 | 很黄很污的网站 | 国产成人午夜精品影院游乐网 | 免费精品在线视频 | 久久这里只有精品首页 | 高清av电影 | 国产精品久久久久久久久图文区 | 久久一二区 | 久久精品视频9 | 91视频麻豆 | 成人在线精品视频 | 欧美成人a | 日韩精品一区二区三区中文在线 | 国产一二三区电影 | 亚洲精品av在线 | 成人做爰69片免费观看 | 可以在线看的黄色网址 | 久久国产精品首页 | 男女在线免费观看 | 国产欧美日韩久久久 | 久操福利 | 成年人精品视频 | 免费激情| 免费视频一区二区三区在线观看 | 亚洲精品永久免费 | 视频一区二区中文字幕日韩 | 日韩三级一区 | 古装三级在线播放 | 精品视频久久久久久 | 成人精品国产一区二区4080 | 日韩一区二区av | 国产成人精品亚洲日本在线观看 | 精久久久| 欧美精品一区二区三区在线播放 | 国产一区999 | 粉色午夜视频 |