me_edu
Регулярные выражения (RegEx)Шаг 20 из 31 · 0% пройдено
Квантификаторы · Квантификаторы

Жадность квантификаторов

Шаг 20 из 316 минТеория
Цель

Понять основной механизм темы «Жадность квантификаторов» без заучивания отдельных терминов.

Как работать

Прочитайте блок один раз целиком, затем вернитесь к схеме или примеру и перескажите идею своими словами.

Критерий

Сформулированное правило, пример применения и одно ограничение метода.

Опорная идея

По умолчанию квантификаторы жадные: они захватывают как можно больше символов. Это иногда приводит к неожиданным результатам.

Представьте текст: <b>жирный</b> и шаблон <.+>. Жадный .+ захватит всё от первого < до последнего >, то есть «<b>жирный</b>» целиком, а не только «<b>».

Чтобы квантификатор брал минимум, после него ставят ? — это делает его ленивым (нежадным):

<.+?> — возьмёт минимально: «<b>», потом «</b>»

Сравните на «<b>жирный</b>»: • <.+> (жадный) → одно совпадение «<b>жирный</b>»; • <.+?> (ленивый) → два совпадения «<b>» и «</b>».

Правило: ? после * + или {} включает ленивый режим. Жадность — частый источник ошибок у новичков: шаблон «хватает» больше, чем нужно. Если совпадение оказалось слишком длинным — попробуйте сделать квантификатор ленивым или сузить класс символов (например, [^>]+ вместо .+ — «всё, кроме закрывающей скобки»).

Назад

Обсуждение

Войдите, чтобы участвовать в обсуждении.

Пока нет сообщений.