VB.Net - 正則表達式

2023-02-01 17:17 更新

正則表達式是可以與輸入文本匹配的模式。 .Net框架提供了允許這種匹配的正則表達式引擎。 模式由一個或多個字符文字,運算符或構造組成。

定義正則表達式的構造

有各種類別的字符,運算符和構造,允許您定義正則表達式。 單擊以下鏈接以查找這些結構。

正則表達式類

正則表達式類用于表示一個正則表達式。

正則表達式類有以下常用方法:

SN方法和說明
1

Public Function IsMatch (input As String) As Boolean
公共函數(shù)IsMatch(輸入作為字符串)作為布爾

表示在正則表達式構造函數(shù)中指定的正則表達式是否發(fā)現(xiàn)在指定的輸入字符串匹配。

2

Public Function IsMatch (input As String, startat As Integer ) As Boolean

公共函數(shù)IsMatch(輸入作為字符串,startat作為整數(shù))作為布爾

指示在Regex構造函數(shù)中指定的正則表達式是否在指定的輸入字符串中找到匹配項,從字符串中指定的起始位置開始。

3

Public Shared Function IsMatch (input As String, pattern As String ) As Boolean

公共共享函數(shù)IsMatch(輸入作為字符串,圖案作為字符串)作為布爾

指示指定的正則表達式是否在指定的輸入字符串中找到匹配項。

4

Public Function Matches (input As String) As MatchCollection

公共函數(shù)匹配(輸入作為字符串)作為MatchCollection

搜索指定的輸入字符串以查找正則表達式的所有出現(xiàn)。

5

Public Function Replace (input As String, replacement As String) As String

公共函數(shù)替換(輸入作為字符串,更換作為字符串)作為字符串

在指定的輸入字符串中,使用指定的替換字符串替換與正則表達式模式匹配的所有字符串。

6

Public Function Split (input As String) As String()

公共函數(shù)(輸入作為字符串)作為字符串()

將輸入字符串插入到由正則表達式構造函數(shù)中指定一個正則表達式模式定義的位置的子字符串數(shù)組。

有關方法和屬性的完整列表,請參閱Microsoft文檔。

示例1

以下示例匹配以“S”開頭的單詞:

Imports System.Text.RegularExpressions
Module regexProg
   Sub showMatch(ByVal text As String, ByVal expr As String)
      Console.WriteLine("The Expression: " + expr)
      Dim mc As MatchCollection = Regex.Matches(text, expr)
      Dim m As Match
      
      For Each m In mc
         Console.WriteLine(m)
      Next m
   End Sub
   
   Sub Main()
      Dim str As String = "A Thousand Splendid Suns"
      Console.WriteLine("Matching words that start with 'S': ")
      showMatch(str, "\bS\S*")
      Console.ReadKey()
   End Sub
End Module

當上述代碼被編譯和執(zhí)行時,它產生了以下結果:

Matching words that start with 'S':
The Expression: SS*
Splendid
Suns

例2

以下示例匹配以“m”開頭并以“e”結尾的單詞:

Imports System.Text.RegularExpressions
Module regexProg
   Sub showMatch(ByVal text As String, ByVal expr As String)
      Console.WriteLine("The Expression: " + expr)
      Dim mc As MatchCollection = Regex.Matches(text, expr)
      Dim m As Match
      
      For Each m In mc
         Console.WriteLine(m)
      Next m
   End Sub
   
   Sub Main()
      Dim str As String = "make a maze and manage to measure it"
      Console.WriteLine("Matching words that start with 'm' and ends with 'e': ")
      showMatch(str, "\bm\S*e\b")
      Console.ReadKey()
   End Sub
End Module

當上述代碼被編譯和執(zhí)行時,它產生了以下結果:

Matching words start with 'm' and ends with 'e':
The Expression: mS*e
make
maze
manage
measure

例3

此示例替換了額外的空白空間:

Imports System.Text.RegularExpressions
Module regexProg
   Sub Main()
      Dim input As String = "Hello    World   "
      Dim pattern As String = "s+"
      Dim replacement As String = " "
      Dim rgx As Regex = New Regex(pattern)
      Dim result As String = rgx.Replace(input, replacement)
      Console.WriteLine("Original String: {0}", input)
      Console.WriteLine("Replacement String: {0}", result)
      Console.ReadKey()
   End Sub
End Module

當上述代碼被編譯和執(zhí)行時,它產生了以下結果:

Original String: Hello   World   
Replacement String: Hello World   


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號