javascript正则表达式匹配2个html评论标签之间的所有内容

标签 javascript regex

我必须创建一个正则表达式来匹配 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/

相关文章:

javascript - 在顶部滚动表格以添加新行

php - 用于查找 URL 的正则表达式,可以改进吗?

javascript - 变量范围的问题 (JavaScript)

javascript - 关于 jQuery 对象中的 "this"

javascript - JQuery 验证 : how to place error messages inside the input's title attribute

sql - 如何使用正则表达式获取不带扩展名的文件名

c# - 从 C# 字符串中提取模式并使用它创建变量的最佳做法是什么

java - 将 XML 的正则表达式部分与 java 匹配时出现问题

c# - 我可以编写正则表达式来检查某些条件下的密码吗?

javascript - 括号 p5.js 无法加载声音 : Error "The request status was: 0 ()"