VB.Net - 正则表达式

正则表达式是一种可以与输入文本匹配的模式. .Net框架提供了允许这种匹配的正则表达式引擎.模式由一个或多个字符文字,运算符或构造组成.

用于定义正则表达式的构造

有各种类型的字符,运算符,以及允许您定义正则表达式的结构.单击以下链接以查找这些构造.

  • 字符转义

  • 字符类

  • Anchors

  • 分组构造

  • Quantifiers

  • Ba ckreference构造

  • 交替构造

  • 替换

  • 其他构造

正则表达式Class

Regex类用于表示正则表达式.

Regex类具有以下常用方法 :

Sr.No.方法&描述
1

Public Function IsMatch (input As String) As Boolean

指示Regex构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项.

2

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

指示Regex构造函数中指定的正则表达式是否找到在指定的输入字符串中匹配,从字符串中的指定起始位置开始.

3

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

指示指定的正则表达式是否在指定的输入字符串中找到匹配项.

4

Public Function Matches (input As String) As MatchCollection

在指定的输入字符串中搜索所有出现的正则表达式.

5

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

在指定的输入字符串中,将所有与正则表达式模式匹配的字符串替换为指定的替换字符串.

6

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

将输入字符串拆分为由子字符串数组定义的位置在Regex构造函数中指定的正则表达式模式.

有关完整列表方法和属性,请参阅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

编译并执行上述代码时,会产生以下结果:

Matching words that start with 'S':
The Expression: \bS\S*
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

编译并执行上述代码时,会产生以下结果:

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
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

编译并执行上述代码时,会产生以下结果:

Original String: Hello   World   
Replacement String: Hello World