在Dreamweaver中查找并替换html注释标记

时间:2017-07-25 10:03:05

标签: html regex replace find dreamweaver

我正在尝试让Dreamweaver删除2个html评论标记之间的所有内容。我的项目中有很多html页面,底部有一堆js脚本,页面到页面都不同。

例如,假设我有以下html:

  <!-- SCRIPTS -->
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="assets/js/custom.js"></script>
  <!-- END SCRIPTS -->

我想做一个查找和替换,删除注释标记之间的所有内容,并用新内容替换它:

  <!-- SCRIPTS -->
  <script src="new-path-for-js-files.js"></script>
  <!-- END SCRIPTS -->

我相信这可以通过使用正则表达式实现,但我找不到任何适合我正在寻找的东西。

我非常感谢你对完成这项工作的建议。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用以下regex

匹配评论标记,包括其所包含的内容
<!-- SCRIPTS -->[\s\S]*?<!-- END SCRIPTS -->

<强>解释
regex会查找确切的文字<!-- SCRIPTS --><!-- END SCRIPTS -->,并尝试匹配其间的所有字符:

  • \s是空白字符类(包含任何空白字符,如空格,制表符,换行符);
  • \S会尝试匹配空白字符类中的任何内容
  • [\s\S]是一个字符集,它试图填充它包含的任何字符,所以在这种情况下,这意味着任何字符;
  • *是一个量词,它会尝试匹配前面的[\s\S]
  • 中的0个或多个
  • ?是一个修饰符,它使前面的量词变得懒惰:默认情况下,像*这样的量词是贪婪的并尝试匹配尽可能多的字符,但是延迟修饰符会更改量词,所以它尝试匹配尽可能少的字符。如果您有多个相同的标签,则必须这样做。

你说你想要替换里面的标签(所以保留标签),我的建议regex不做(它也会匹配 - 从而取代 - 评论标签)。使用regex使用外观是可能的,但这会使regex更加困难;只有部分regex口味(部分)支持外观 我建议您只需在替换代码周围添加注释标记,如果您想将它们保留在源代码中。