挙動がわかりません。そのような例があり、html コメントをキャッチする必要があります。
var str = '.. <!--My -- comment test--> ';
var regex1 = /<!--[.]*-->/g;
var regex2 = /<!--.*-->/g;
alert(str.match(regex1)); // null
alert(str.match(regex2)); // <!--My -- comment test-->
2 番目の正規表現regex2
は正常に機能し、必要なものを正確に出力します。最初のショーnull
。そして、私は違いを理解していません。RegExpressions<!--[.]*-->
と<!--.*-->
同じ意味です - 「<!--
改行を除く任意の文字を 0 からできるだけ多く取り、」で終了し-->
ます。しかし、2番目の場合は機能し、最初の場合は機能しません。なんで?
アップデート。コメントを読み、更新しました。
var str3 = '.. <!--Mycommenttest--> ';
var str4 = '.. <!--My comment test--> ';
var regex3 = /<!--[\w]*-->/g;
var regex4 = /<!--[\s\S]*-->/g;
alert(str.match(regex3)); // <!--Mycommentstest-->
alert(str.match(regex4)); // <!-- My comment test -->
そのため、限定された一致変数を使用して、何にでも一致させることができます。正規表現を正しく使用するには、どの方法を使用する必要がありますか? それらの有無に[]
かかわらず?どちらも正しい出力を提供します。