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

NonBacktracking

RegexOptions.NonBacktracking доступен начиная с .NET 7. Движок не использует классический откат, поэтому время работы ограничено. Флаг не сочетают с обратными ссылками и частью lookaround - в примерах достаточно простого \d+.

Синтаксис

new Regex(@"\d+", RegexOptions.NonBacktracking);

Пример

Давайте найти цифры в "abcde12345":

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

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

"12345"

Пример

Давайте проверить IsMatch с флагом:

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

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

True

Пример

Давайте убедиться, что буквы не совпадают:

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

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

False

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

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