VB.NET正則表達式怎么用

小編給大家分享一下VB.NET正則表達式怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網站、網站制作、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的竹溪網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

1、引言

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

由此可見,作為一種字符串處理方式,正則表達式的靈活與強大確實是傳統字符串處理方式無法相比的。

2、VB.NET正則表達式處理類

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

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

使用正則表達式類的通用方法是:

首先生成一個Regex類的實例,并在傳入參數中輸入正則表達式的模式,然后使用Regex類的相應方法,如IsMatch(判斷是否
匹配)、Match(返回匹配得到的字符串)等等。

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

接下來給出一個VB.NET正則表達式的應用。

3、時間解析程序

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

當用戶在文本框中輸入時間值后,點計算后就會在“結果”后面得到用秒表示的時間值。

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

程序包括一個計算時間的正則表達式工具類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 '時間表達式  

  8. Sub New()  

  9. End Sub  

  10. '根據時間文本解析出其中的數字部分  

  11. Private Function getTime(ByVal 
    timeKind As String) As String  

  12. Dim timeMatch As Match  

  13. Dim time As String  

  14. '先從中解析出包含數字和中文的部分  

  15. timeMatch = Regex.Match(exp, timeKind)  

  16. If timeMatch.Success = True Then  

  17. time = timeMatch.Value  

  18. '然后從得到的文本中解析出數字  

  19. Return Regex.Match(time, "[0-9]+").Value  

  20. Else  

  21. Return "0"  

  22. End If  

  23. End Function  

  24. '根據傳入的表達式計算總時間  

  25. Public Function getTotalTime(ByVal 
    _exp As String) As Integer  

  26. exp = _exp 

  27. '分別計算出小時,分鐘,秒,然后得到總時間  

  28. hour = Integer.Parse(getTime("[0-9]+小時"))  

  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窗體設計器生成代碼省略

  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小時1分鐘1秒后點計算,得到結果3661秒,證明結果正確。

以上是“VB.NET正則表達式怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

名稱欄目:VB.NET正則表達式怎么用
分享路徑:http://m.kartarina.com/article38/ijpepp.html

成都網站建設公司_創新互聯,為您提供商城網站域名注冊App開發企業建站企業網站制作用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 久久av高潮av无码av喷吹| 亚洲精品av无码喷奶水糖心| 亚洲AV无码成H人在线观看| 久久精品无码专区免费| 亚洲av无码一区二区三区观看| 国产人成无码视频在线观看| 日韩精品无码中文字幕一区二区| 粉嫩大学生无套内射无码卡视频| 无码国产精品一区二区免费I6 | 中文字幕无码视频专区| 色偷偷一区二区无码视频| 无码专区一va亚洲v专区在线| 精品人妻系列无码一区二区三区| 国产成人无码区免费网站| 国产午夜鲁丝片AV无码| 久久亚洲AV成人无码国产最大| 无码精品国产一区二区三区免费| 中文无码熟妇人妻AV在线| 麻豆亚洲AV成人无码久久精品 | 少妇无码太爽了不卡视频在线看| 无码国内精品久久人妻蜜桃| 亚洲中文久久精品无码| 无码8090精品久久一区| 午夜无码人妻av大片色欲| 无码乱肉视频免费大全合集| 人妻无码αv中文字幕久久| 亚洲精品无码鲁网中文电影| 无码人妻精品一区二区三区99不卡| 亚洲国产成人精品无码区花野真一| 亚洲成无码人在线观看| 老子午夜精品无码| 无码人妻精品一区二区三区99性 | 中文午夜人妻无码看片| 精品无码无人网站免费视频| 久久久久亚洲Av片无码v| 亚洲av无码成人黄网站在线观看 | 精品少妇人妻AV无码专区不卡| 亚洲中文无码永久免费| 亚洲av纯肉无码精品动漫| 无码视频免费一区二三区| 一本之道高清无码视频|