Учебники

VB.Net — Регулярные выражения

Регулярное выражение — это шаблон, который можно сопоставить с входным текстом. .Net Framework предоставляет механизм регулярных выражений, который позволяет такое сопоставление. Шаблон состоит из одного или нескольких литералов символов, операторов или конструкций.

Конструкции для определения регулярных выражений

Существуют различные категории символов, операторов и конструкций, которые позволяют определять регулярные выражения. Нажмите на следующие ссылки, чтобы найти эти конструкции.

Персонаж убегает

Классы персонажей

Якоря

Группировка конструкций

Кванторы

Обратные ссылки

Чередование конструкций

Замены

Разные конструкции

Класс Regex

Класс Regex используется для представления регулярного выражения.

Класс Regex имеет следующие часто используемые методы —

Sr.No. Методы и описание
1

Открытая функция IsMatch (input As String) как логическое значение

Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке.

2

Открытая функция IsMatch (ввод как строка, запуск как целое число) как логическое значение

Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке, начиная с указанной начальной позиции в строке.

3

Открытая общая функция IsMatch (входная строка как строка, шаблонная строка как строка) как логическое значение

Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке.

4

Открытые совпадения функций (input As String) As MatchCollection

Выполняет поиск в указанной входной строке всех вхождений регулярного выражения.

5

Открытая функция Replace (ввод в виде строки, замена в виде строки) в виде строки

В указанной входной строке заменяет все строки, которые соответствуют шаблону регулярного выражения, указанной строкой замены.

6

Открытая функция Split (input As String) As String ()

Разбивает входную строку на массив подстрок в позициях, определенных шаблоном регулярного выражения, указанным в конструкторе Regex.

Открытая функция IsMatch (input As String) как логическое значение

Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке.

Открытая функция IsMatch (ввод как строка, запуск как целое число) как логическое значение

Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке, начиная с указанной начальной позиции в строке.

Открытая общая функция IsMatch (входная строка как строка, шаблонная строка как строка) как логическое значение

Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке.

Открытые совпадения функций (input As String) As MatchCollection

Выполняет поиск в указанной входной строке всех вхождений регулярного выражения.

Открытая функция Replace (ввод в виде строки, замена в виде строки) в виде строки

В указанной входной строке заменяет все строки, которые соответствуют шаблону регулярного выражения, указанной строкой замены.

Открытая функция Split (input As String) As String ()

Разбивает входную строку на массив подстрок в позициях, определенных шаблоном регулярного выражения, указанным в конструкторе Regex.

Полный список методов и свойств см. В документации Microsoft.

Пример 1

В следующем примере сопоставляются слова, начинающиеся с ‘S’ —

Live Demo

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» —

Live Demo

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

Этот пример заменяет дополнительный пробел —

Live Demo

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

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —