en.javascript.info/10-regular-expressions-javascript/07-regexp-greedy-and-lazy/3-find-html-comments/solution.md
Ilya Kantor e2443e8de6 ok
2017-03-19 16:59:53 +03:00

17 lines
980 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Нужно найти начало комментария `match:<!--`, затем всё до конца `match:-->`.
С первого взгляда кажется, что это сделает регулярное выражение `pattern:<!--.*?-->` -- квантификатор сделан ленивым, чтобы остановился, достигнув `match:-->`.
Однако, точка в JavaScript -- любой символ, *кроме* конца строки. Поэтому такой регэксп не найдёт многострочный комментарий.
Всё получится, если вместо точки использовать полностю "всеядный" `pattern:[\s\S]`.
Итого:
```js run
var re = /<!--[\s\S]*?-->/g;
var str = '.. <!-- Мой -- комментарий \n тест --> .. <!----> .. ';
alert( str.match(re) ); // '<!-- Мой -- комментарий \n тест -->', '<!---->'
```