Рассмотрим на примере:
<а 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
Метки: квантификатор, регулярные выражения