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

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

Рассмотрим на примере:

<а href="http://php.net/">PHP</a> has an
<a href="http://pnp.net/manual">excellent</a> manual.

Т.е. здесь видим две ссылки. Нам надо выбрать содержимое первого тега ‘a’:

/<а.*>(.*)</а>/; //наш шаблон
$matches[1] => excellent

Ожидаемого результата мы не получили, т.к. ‘*’ и ‘+’ — это жадные квантификаторы. Они пытаются захватить как можно больше. В итоге они сработали от первого тега ‘a’ до последнего закрывающего тега ‘/a’. Чтобы отучить их от жадности, используют знак вопроса ‘?’. Теперь перепишем наш шаблон таким образом:

/<а.*?>(.*?)</а>/; //знак вопроса отучает от жадности, надо искать минимальное совпадение
$matches[1] => PHP



Добавить комментарий

Ваш e-mail не будет опубликован.