Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Пошагово объясните РВ с жадным квантификатором
Форумы портала PHP.SU » PHP » Регулярные выражения » Пошагово объясните РВ с жадным квантификатором

Страниц (1): [1]
 

1. Bruha1991 - 08 Января, 2016 - 15:38:56 - перейти к сообщению
Здравствуйте! Есть такая задача: найти в тексте ссылки вида <a href="..." class="doc">, с любым содержанием href.
Вот решение, но не понимаю почему оно работает именно так
PHP:
скопировать код в буфер обмена
  1. var str = '...<a href="link" class="doc">...';
  2. var reg = /<a href=".*" class="doc">/g;

Результат <a href="link" class="doc">
Объясните пошагово как здесь сработал жадный квантификатор ".*".
2. re_nat - 08 Января, 2016 - 16:14:39 - перейти к сообщению
"." - любой символ кроме перевода строки,
"*" - 0 или более символов.
В итоге мы ищем строку: <a href=".*" class="doc">, где в href может быть всё что душе угодно. Жадность тут роли не играет.
Разница лишь в том, что из строки: <a href="<a href="link" class="doc">" class="doc">
жадный вернёт её всю - <a href="<a href="link" class="doc">" class="doc">,
а не жадный будет довольствоваться только куском - <a href="<a href="link" class="doc">

 

Powered by ExBB FM 1.0 RC1