在 Dreamweaver 中查找并替换 html 个评论标签

Find and replace between html comment tags in 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 -->

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

非常感谢您对完成此任务的建议。

非常感谢!

您可以使用以下 regex:

匹配评论标签,包括它们包围的内容
<!-- SCRIPTS -->[\s\S]*?<!-- END SCRIPTS -->

解释:
regex 查找确切的文本 <!-- SCRIPTS --><!-- END SCRIPTS -->,并尝试匹配两者之间的所有字符:

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

你说你想替换代码 inside 标签(所以保留标签),我的建议 regex 不这样做(它也会匹配 -从而替换 - 评论标签)。 regex 可以使用环顾四周,但这会使 regex 更加困难;并且只有 regex 的一部分(部分)支持环视。
如果您想将替换代码保留在源代码中,我建议您只需在替换代码周围添加注释标签即可。