javascript正则表达式匹配2个html注释标记之间的所有内容

javascript正则表达式匹配2个html注释标记之间的所有内容,javascript,regex,Javascript,Regex,我必须创建一个正则表达式,它将匹配两个特定于html的注释标记之间的任何内容(包括换行符)。以下是一些html的示例: <!-- build-remove-start --> <!-- bower:js --> <script src="../bower_components/jquery/dist/jquery.js"></script> <!-- endbower --> <!-- build-remove-end -->

我必须创建一个正则表达式,它将匹配两个特定于html的注释标记之间的任何内容(包括换行符)。以下是一些html的示例:

<!-- build-remove-start -->
<!-- bower:js -->
<script src="../bower_components/jquery/dist/jquery.js"></script>
<!-- endbower -->
<!-- build-remove-end -->

<!-- inject:vendor:js -->
<!-- endinject -->

我想匹配
之间的所有内容,不包括注释标签(我的意思是不删除注释标签,只删除里面的内容)。
我试过:
[\s\s]

但它不起作用。 下面是测试正则表达式的链接:

您需要在
[\s\s]
之后添加
*

/<!-- build-remove-start -->([\s\S]*?)<!-- build-remove-end -->/gmi

检查。我是否可以建议实际使用DOM,它可以在注释节点上进行迭代?@Eevee,它是用于构建目的的doesn这不包括注释标记吗?为什么是捕获组?您只需要替换捕获组中的内容,而不是整个匹配项。@MarcosCasagrande,注释似乎也属于匹配模式,我需要把它排除在外。下面是您的答案演示
[\s\s]*?
将不可避免地使用大型HTML代码耗尽回溯缓冲区限制,代码执行将冻结。如果您希望具有相同的效果但避免回溯问题,请在我的评论中使用正则表达式。
<!-- build-remove-start -->
//remove this
<!-- build-remove-end -->

This won't be removed

<!-- build-remove-start -->
//Remove this
<!-- build-remove-end -->