Жадность (регулярные выражения)

Жадность (в отношении регулярного выражения) — характеристика, указывающая на повередение регулярного выражения при обработке шаблона.

Жадное регулярное выражение "стремится" захватить максимально-возможный текст (например, указание "один или более символов" трактуется как "один или более, насколько возможно").

Нежадное регулярное выражение "стремится" захватить минимально-возможный текст (например, указание "один или более символов" будет трактоваться как "один символ").

Примеры жадных выражений:

/\[.+\]/ 

Захватывает текст, находящийся между квадратных скобок. Однако, если в тексте несколько вхождений текста квадратных скобок, будет захвачен весь текст между первыми открывающими скобками и последними закрывающими.

/\[.+?\]/

Аналогично, захватывает текст, находящийся между квадратных скобок, но прекращает после первых же закрывающих квадратных скобок.

Разница в реализации

При необходимости обработать жадный элемент шаблона, парсер начинает поиск соответствия с конца обрабатываемой строки; при обработке нежадного элемента, проверка производится с текущего места обработки строки до первого несоответствия.

Примеры реализации

Символ * (звёздочка) при работе с файлами обычно означает "ноль или более символов". В современных операционных системах это нежадное выражение; в DOS этот символ трактовался как жадный, т.е. символ * означал "все символы до конца имени файла.

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home