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

Compiled

RegexOptions.Compiled просит JIT скомпилировать автомат регулярного выражения в IL. Имеет смысл, если один и тот же Regex вызывают много раз: первое создание дороже, последующие совпадения быстрее. Для разового поиска флаг часто не нужен.

Синтаксис

var re = new Regex(pattern, RegexOptions.Compiled);

Пример

Давайте создать скомпилированный Regex:

using System; using System.Text.RegularExpressions; class Program { static void Main() { var re = new Regex(@"\d+", RegexOptions.Compiled); Console.WriteLine(re.IsMatch("12345")); } }

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

True

Пример

Давайте вызвать один объект два раза:

using System; using System.Text.RegularExpressions; class Program { static void Main() { var re = new Regex(@"abc", RegexOptions.Compiled); Console.WriteLine(re.IsMatch("abcde")); Console.WriteLine(re.IsMatch("12345")); } }

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

True False

Пример

Давайте объединить Compiled с IgnoreCase:

using System; using System.Text.RegularExpressions; class Program { static void Main() { var re = new Regex(@"ABC", RegexOptions.Compiled | RegexOptions.IgnoreCase); Console.WriteLine(re.IsMatch("abcde")); } }

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

True

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

  • флаг NonBacktracking,
    который задаёт другой движок
  • перечисление RegexOptions,
    куда входит Compiled
  • класс Regex,
    которому передают флаги
  • флаг IgnoreCase,
    который часто комбинируют с Compiled
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить