使用正则表达式从源中删除不必要的注释

问题描述 投票:0回答:1

这是我想从源代码中删除注释的表达式,它删除了除浏览器特定注释以外的所有注释。

/<\!--(?!\[if).*?-->/s

我不是100%理解正则表达式,但是我通过在Stack中搜索时发现的各种表达式设法将它“ Frankenstein”结合在一起。这就是我看到此表达形式的方式,如果有人可以帮助我进一步理解它,我将非常乐意。

/<\!--

用于搜索我想用斜杠替换的部分以逃避!因为它是表达式的一部分?

(?!\[if)

表示是否不包含[if block?

 .*?

通配符,所以说无论中间是什么?

-->

我想让表达式找到的位的结尾。

/s

即使表达式之间有空格也要让表达式运行?

我不想只使用代码,因为它可以满足我的需要,我想真正了解我正在使用的内容,并学习将来如何更好地使用它。

此表达式效果很好,但我需要进一步帮助。在我的资料中,我在脚本标签I.E.中有代码段。

<script type="text/javascript">
  <!--
    // Main vBulletin Javascript Initialization
    vBulletin_init();
  //-->
</script>

有没有一种方法可以调整当前的表达方式以排除这些类型的注释?

php regex comments preg-replace
1个回答
0
投票

解决方案很简单。 /<\!--(?!\[if).*?-->/结尾的s是使.匹配换行符的标志。 As you can see, it works without the flag

© www.soinside.com 2019 - 2024. All rights reserved.