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

Ленивые квантификаторы

После *, + или ? ставят ещё ?: *?, +?. Жадный квантификатор берёт максимум символов, ленивый - минимум, при котором шаблон ещё сходится.

Синтаксис

Regex.Match(text, @".*?");

Пример

Давайте сравнить .* и .*? до буквы "e":

using System; using System.Text.RegularExpressions; class Program { static void Main() { string text = "axbxe"; var greedy = Regex.Match(text, @"a.*e"); var lazy = Regex.Match(text, @"a.*?e"); Console.WriteLine(greedy.Value + " " + lazy.Value); } }

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

axbxe axe

Пример

Давайте применить +? к цифрам:

using System; using System.Text.RegularExpressions; class Program { static void Main() { var m = Regex.Match("a12345", @"\d+?"); Console.WriteLine(m.Value); } }

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

"1"

Пример

Давайте взять короткий фрагмент в "abcde":

using System; using System.Text.RegularExpressions; class Program { static void Main() { var m = Regex.Match("abcde", @".??"); Console.WriteLine("\"" + m.Value + "\""); } }

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

""

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить