我必须创建一个正则表达式来匹配 2 个 html 特定注释标签之间的任何内容(包括换行符)。这是一些 html 的示例:
<!-- build-remove-start -->
<!-- bower:js -->
<script src="../bower_components/jquery/dist/jquery.js"></script>
<!-- endbower -->
<!-- build-remove-end -->
<!-- inject:vendor:js -->
<!-- endinject -->
我想匹配 <!-- build-remove-start -->
之间的所有东西和 <!-- build-remove-end -->
不包括评论标签(我的意思是不删除评论标签,只删除里面的内容)。
我试过:
<!-- build-remove-start -->[\s\S]<!-- build-remove-end -->
但它不起作用。
这是测试正则表达式的链接:
https://regex101.com/r/rV0qG2/2
最佳答案
需要在[\s\S]
后添加*
。
/<!-- build-remove-start -->([\s\S]*?)<!-- build-remove-end -->/gmi
我还建议在 *
之后添加 ?
,这样它就变得懒惰了。这样你就可以得到下面的例子,否则 this won't be removed
行将被匹配。
<!-- build-remove-start -->
//remove this
<!-- build-remove-end -->
This won't be removed
<!-- build-remove-start -->
//Remove this
<!-- build-remove-end -->
关于javascript正则表达式匹配2个html评论标签之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711890/