Изучал learnjs на тему жадных и ленивых квантификаторов.
Наткнулся на такой пример
Итак, нужен шаблон для поиска
<a href="...something..." class="doc">
, но и с ленивым и с жадным режимами есть проблема.
Правильным вариантом может стать: href="[^"]*". Он найдёт все символы внутри атрибута href до ближайшей следующей кавычки, как раз то, что нам нужно.
let str1 = '...<a href="link1" class="wrong">... <p style="" class="doc">...';
let str2 = '...<a href="link1" class="doc">... <a href="link2" class="doc">...';
let regexp = /<a href="[^"]*" class="doc">/g;
// Работает!
alert( str1.match(regexp) ); // совпадений нет, всё правильно
alert( str2.match(regexp) ); // <a href="link1" class="doc">, <a href="link2" class="doc">
Не понимаю как это href="[^"]*" работает?
1. ищется href="
2. потом строка [^"] говорит что ну может быть несколько ковычек в начале строки,- тут уже как-то туманом покрывается
3. потом *" говорит что кавычки в начале строки могут повторяться?