Регулярное выражение — это шаблон, который можно сопоставить с входным текстом. .Net Framework предоставляет механизм регулярных выражений, который позволяет такое сопоставление. Шаблон состоит из одного или нескольких литералов символов, операторов или конструкций.
Конструкции для определения регулярных выражений
Существуют различные категории символов, операторов и конструкций, которые позволяют определять регулярные выражения. Нажмите на следующие ссылки, чтобы найти эти конструкции.
Класс Regex
Класс Regex используется для представления регулярного выражения. Он имеет следующие обычно используемые методы —
Sr.No. | Методы и описание |
---|---|
1 |
public bool IsMatch (ввод строки) Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке. |
2 |
public bool IsMatch (ввод строки, int startat) Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке, начиная с указанной начальной позиции в строке. |
3 |
public static bool IsMatch (ввод строки, шаблон строки) Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке. |
4 |
public MatchCollection Matches (строковый ввод) Выполняет поиск в указанной входной строке всех вхождений регулярного выражения. |
5 |
публичная строка Replace (ввод строки, замена строки) В указанной входной строке заменяет все строки, которые соответствуют шаблону регулярного выражения, указанной строкой замены. |
6 |
public string [] Split (ввод строки) Разбивает входную строку на массив подстрок в позициях, определенных шаблоном регулярного выражения, указанным в конструкторе Regex. |
public bool IsMatch (ввод строки)
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке.
public bool IsMatch (ввод строки, int startat)
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке, начиная с указанной начальной позиции в строке.
public static bool IsMatch (ввод строки, шаблон строки)
Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке.
public MatchCollection Matches (строковый ввод)
Выполняет поиск в указанной входной строке всех вхождений регулярного выражения.
публичная строка Replace (ввод строки, замена строки)
В указанной входной строке заменяет все строки, которые соответствуют шаблону регулярного выражения, указанной строкой замены.
public string [] Split (ввод строки)
Разбивает входную строку на массив подстрок в позициях, определенных шаблоном регулярного выражения, указанным в конструкторе Regex.
Для полного списка методов и свойств, пожалуйста, прочитайте документацию Microsoft на C #.
Пример 1
В следующем примере сопоставляются слова, начинающиеся с ‘S’ —
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { private static void showMatch(string text, string expr) { Console.WriteLine("The Expression: " + expr); MatchCollection mc = Regex.Matches(text, expr); foreach (Match m in mc) { Console.WriteLine(m); } } static void Main(string[] args) { string str = "A Thousand Splendid Suns"; Console.WriteLine("Matching words that start with 'S': "); showMatch(str, @"\bS\S*"); Console.ReadKey(); } } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Matching words that start with 'S': The Expression: \bS\S* Splendid Suns
Пример 2
В следующем примере сопоставляются слова, которые начинаются с «m» и заканчиваются «e» —
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { private static void showMatch(string text, string expr) { Console.WriteLine("The Expression: " + expr); MatchCollection mc = Regex.Matches(text, expr); foreach (Match m in mc) { Console.WriteLine(m); } } static void Main(string[] args) { string str = "make maze and manage to measure it"; Console.WriteLine("Matching words start with 'm' and ends with 'e':"); showMatch(str, @"\bm\S*e\b"); Console.ReadKey(); } } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Matching words start with 'm' and ends with 'e': The Expression: \bm\S*e\b make maze manage measure
Пример 3
Этот пример заменяет дополнительный пробел —
using System; using System.Text.RegularExpressions; namespace RegExApplication { class Program { static void Main(string[] args) { string input = "Hello World "; string pattern = "\\s+"; string replacement = " "; Regex rgx = new Regex(pattern); string result = rgx.Replace(input, replacement); Console.WriteLine("Original String: {0}", input); Console.WriteLine("Replacement String: {0}", result); Console.ReadKey(); } } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —