阅读(2670) (20)

VB.Net - 正则表达式

2016-12-12 14:26:47 更新

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

定义正则表达式的构造

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

正则表达式类

正则表达式类用于表示一个正则表达式。

正则表达式类有以下常用方法:

SN方法和说明
1

Public Function IsMatch (input As String) As Boolean
公共函数IsMatch(输入作为字符串)作为布尔

表示在正则表达式构造函数中指定的正则表达式是否发现在指定的输入字符串匹配。

2

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

公共函数IsMatch(输入作为字符串,startat作为整数)作为布尔

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

3

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

公共共享函数IsMatch(输入作为字符串,图案作为字符串)作为布尔

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

4

Public Function Matches (input As String) As MatchCollection

公共函数匹配(输入作为字符串)作为MatchCollection

搜索指定的输入字符串以查找正则表达式的所有出现。

5

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

公共函数替换(输入作为字符串,更换作为字符串)作为字符串

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

6

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

公共函数(输入作为字符串)作为字符串()

将输入字符串插入到由正则表达式构造函数中指定一个正则表达式模式定义的位置的子字符串数组。

有关方法和属性的完整列表,请参阅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, "bSS*")
      Console.ReadKey()
   End Sub
End Module

当上述代码被编译和执行时,它产生了以下结果:

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, "bmS*eb")
      Console.ReadKey()
   End Sub
End Module

当上述代码被编译和执行时,它产生了以下结果:

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

当上述代码被编译和执行时,它产生了以下结果:

Original String: Hello   World   
Replacement String: Hello World