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

VB.NET正則表達(dá)式應(yīng)用經(jīng)驗(yàn)分享

開發(fā) 后端
VB.NET正則表達(dá)式在使用的過程中,首先要做的就是對特定命名空間進(jìn)行引入,這一命名空間叫做:System.Text.RegularExpressions。

作為一個(gè)優(yōu)秀的程序員來說,掌握一兩門編程語言并不算什么。而能夠把所掌握的語言達(dá)到一種熟練運(yùn)用的地步就是一個(gè)相當(dāng)?shù)碾y的高度了。對于VB.NET的學(xué)習(xí)同樣也是需要我們循序漸進(jìn)的慢慢積累經(jīng)驗(yàn)才能達(dá)到自己預(yù)期的目標(biāo)。先來了解一下VB.NET正則表達(dá)式的相關(guān)介紹吧。#t#

1、引言

在通常的程序設(shè)計(jì)中,對字符串的操作是不可缺少的部分。例如,我們經(jīng)常需要從字符串中尋找特定的部分,或者對某一部分進(jìn)行替換、刪除等等。使用傳統(tǒng)的靜態(tài)字符串操作方法只能查找字符串中固定不變的部分,缺乏靈活性。而用VB.NET正則表達(dá)式則可以規(guī)定待查找字符串的模式,查找同一類型的字符串,例如要在EMAIL格式的字符串(如lzcarl@126.com)中分解出用戶名和服務(wù)器名,可以定義如下的正則表達(dá)式(?<user>[^@]+)@(?<host>.+),然后使用相應(yīng)的解析器進(jìn)行解析,得到兩個(gè)分組user組和host組,user組里存儲(chǔ)用戶名lzcarl,host組里存放服務(wù)器名126.com,而用傳統(tǒng)的方法是很難實(shí)現(xiàn)這種分解的。

由此可見,作為一種字符串處理方式,正則表達(dá)式的靈活與強(qiáng)大確實(shí)是傳統(tǒng)字符串處理方式無法相比的。

 

2、VB.NET正則表達(dá)式處理類

在VB.NET中使用正則表達(dá)式必須先引入命名空間System.Text.RegularExpressions,該命名空間包含一下七個(gè)類:Regex、Match、MatchCollection、GroupCollection、CaptureCollection、Group、Capture。

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

使用正則表達(dá)式類的通用方法是:

首先生成一個(gè)Regex類的實(shí)例,并在傳入?yún)?shù)中輸入正則表達(dá)式的模式,然后使用Regex類的相應(yīng)方法,如IsMatch(判斷是否
匹配)、Match(返回匹配得到的字符串)等等。

當(dāng)然也可以使用Regex類的共享方法而不實(shí)例化Regex類——IsMatch、Match等等(即上述方法的共享版本)獲得所需要的結(jié)果。這種方法適于匹配模式不固定,匹配次數(shù)不多的情況。

接下來給出一個(gè)VB.NET正則表達(dá)式的應(yīng)用。

 

3、時(shí)間解析程序

該程序讀取用戶輸入的時(shí)間長度字符串(如XX小時(shí)XX分鐘XX秒),把它解析,***用秒表示該時(shí)間長度(XX秒)。

當(dāng)用戶在文本框中輸入時(shí)間值后,點(diǎn)計(jì)算后就會(huì)在“結(jié)果”后面得到用秒表示的時(shí)間值。

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

程序包括一個(gè)計(jì)算時(shí)間的正則表達(dá)式工具類TimeRegex,及Form1界面類。

TimeRegex類代碼如下:

 

  1. Imports System.Text.RegularExpressions  
  2. Public Class TimeRegex  
  3. Private hour As Integer = 0 
  4. Private minute As Integer = 0 
  5. Private second As Integer = 0 
  6. Private totalTime As Integer = 0 
  7. Private exp As String '時(shí)間表達(dá)式  
  8. Sub New()  
  9. End Sub  
  10. '根據(jù)時(shí)間文本解析出其中的數(shù)字部分  
  11. Private Function getTime(ByVal 
    timeKind As String) As String  
  12. Dim timeMatch As Match  
  13. Dim time As String  
  14. '先從中解析出包含數(shù)字和中文的部分  
  15. timeMatch = Regex.Match(exp, timeKind)  
  16. If timeMatch.Success = True Then  
  17. time = timeMatch.Value  
  18. '然后從得到的文本中解析出數(shù)字  
  19. Return Regex.Match(time, "[0-9]+").Value  
  20. Else  
  21. Return "0"  
  22. End If  
  23. End Function  
  24. '根據(jù)傳入的表達(dá)式計(jì)算總時(shí)間  
  25. Public Function getTotalTime(ByVal 
    _exp As String) As Integer  
  26. exp = _exp 
  27. '分別計(jì)算出小時(shí),分鐘,秒,然后得到總時(shí)間  
  28. hour = Integer.Parse(getTime("[0-9]+小時(shí)"))  
  29. minute = Integer.Parse(getTime("[0-9]+分鐘"))  
  30. second = Integer.Parse(getTime("[0-9]+秒"))  
  31. totalTime = hour * 3600 + minute * 60 + second  
  32. Return totalTime  
  33. End Function  
  34. End Class  
  35. Form1類代碼如下:  
  36. Public Class Form1  
  37. Inherits System.Windows.Forms.Form  
  38. Private regex As New TimeRegex 

 

 

Windows窗體設(shè)計(jì)器生成代碼省略

 

 

  1. Private Sub Button1_Click
    (ByVal sender As System.Object, 
    ByVal e As System.EventArgs) 
    Handles Button1.Click  
  2. SecondTime.Text = regex.
    getTotalTime  
  3. (timeExp.Text).ToString & "秒"  
  4. End Sub  
  5. End Class 

 

用戶輸入1小時(shí)1分鐘1秒后點(diǎn)計(jì)算,得到結(jié)果3661秒,證明結(jié)果正確。

 

4、結(jié)論

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

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-10-26 16:01:03

VB.NET正則表達(dá)式

2010-01-07 15:29:59

VB.NET表達(dá)式

2009-10-26 16:12:19

VB.NET正則表達(dá)式

2009-10-27 10:14:54

VB.NET正則表達(dá)式

2009-10-26 15:33:27

VB.NET正則表達(dá)式

2009-10-28 09:02:41

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

2009-10-26 16:49:27

VB.NET正則表達(dá)式

2009-03-24 08:56:15

正則表達(dá)式格式清理字符串

2010-01-12 17:02:54

VB.NET文件上傳

2009-08-07 14:24:31

.NET正則表達(dá)式

2024-09-14 09:18:14

Python正則表達(dá)式

2012-05-08 13:29:01

VB

2010-01-14 18:14:22

VB.NET開發(fā)特點(diǎn)

2011-07-11 12:33:30

JAVA

2012-01-12 10:21:57

正則表達(dá)式

2009-08-07 14:31:40

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

2009-08-27 15:45:30

C#正則表達(dá)式

2018-09-27 15:25:08

正則表達(dá)式前端

2010-01-14 17:33:47

VB.NET重載事件處

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)
點(diǎn)贊
收藏

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