@223606322
начинающий web-разработчик

Как работает регулярное вырпжение?

Изучал 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. потом *" говорит что кавычки в начале строки могут повторяться?
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
[^"] - любой символ кроме ковычки([] - набор, ^-инверсия набора), * - любое количество символов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы