晴耕雨読

working in the fields on fine days and reading books on rainy days

[Regex] 正規表現でHTMLのコメントを抽出する

正規表現でHTMLのコメントを抽出する方法について説明します。

HTMLのコメントとは <!-- から始まり、--> で終わる改行などの空白を含めた文字列です。 HTMLのコメントを抽出するための正規表現は、<!--([^-]*|-(?=[^-])|--(?=[^>]))--> となります。 プログラミング言語の正規表現エンジンにて、控えめな量指定子が使える場合は、<!--(.*?)--> となります。

let text = `
<!-- ここにはタイトルを追加すること -->
<div>テストテキスト</div>
<!-- ここに説明を追加する。
     図を用意できれば良い
-->
<div>テストテキスト</div>
`;
let comments = text.matchAll(/<!--([^-]*|-(?=[^-])|--(?=[^>]))-->/g);
for (let comment of comments) {
    console.log(comment[0])
}

出力結果:

<!-- ここにはタイトルを追加すること -->
<!-- ここに説明を追加する。
     図を用意できれば良い
-->

以上です。

参考文献