📜  VB.Net-正则表达式

📅  最后修改于: 2020-11-19 09:01:21             🧑  作者: Mango


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

定义正则表达式的构造

字符,运算符和构造有多种类别,可让您定义正则表达式。单击以下链接以找到这些构造。

正则表达式类

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

Regex类具有以下常用方法-

Sr.No. Methods & Description
1

Public Function IsMatch (input As String) As Boolean

Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

2

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

Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

3

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

Indicates whether the specified regular expression finds a match in the specified input string.

4

Public Function Matches (input As String) As MatchCollection

Searches the specified input string for all occurrences of a regular expression.

5

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

In a specified input string, replaces all strings that match a regular expression pattern with a specified replacement string.

6

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

Splits an input string into an array of substrings at the positions defined by a regular expression pattern specified in the Regex constructor.

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