Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
660 of 1492 menu
◀ ▶

Атрибут GeneratedRegex

Атрибут [GeneratedRegex] вешают на partial метод, возвращающий Regex; класс тоже объявляют partial. Компилятор генерирует реализацию при сборке - в рантайме new Regex для этого шаблона не нужен. Ошибки разбора дают RegexParseException на этапе компиляции.

Синтаксис

partial class Program { [GeneratedRegex(@"шаблон")] private static partial Regex MyRegex(); }

Пример

Давайте найдём цифры через сгенерированный Regex:

using System; using System.Text.RegularExpressions; partial class Program { [GeneratedRegex(@"\d+")] private static partial Regex DigitsRegex(); static void Main() { Match match = DigitsRegex().Match("12345"); Console.WriteLine(match.Value); } }

Результат выполнения кода:

"12345"

Пример

Давайте проверим совпадение букв через IsMatch:

using System; using System.Text.RegularExpressions; partial class Program { [GeneratedRegex(@"abc")] private static partial Regex AbcRegex(); static void Main() { bool res = AbcRegex().IsMatch("abcde"); Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте переиспользуем один сгенерированный объект в двух вызовах:

using System; using System.Text.RegularExpressions; partial class Program { [GeneratedRegex(@"\d")] private static partial Regex DigitRegex(); static void Main() { var regex = DigitRegex(); Console.WriteLine(regex.IsMatch("12345")); Console.WriteLine(regex.IsMatch("abcde")); } }

Результат выполнения кода:

True False

Смотрите также

  • Regex,
    тип, который возвращает метод
  • RegexOptions,
    которые можно указать в атрибуте
  • цифра,
    которую задают шаблоном \d+
  • RegexParseException,
    которое видно при ошибке шаблона
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить