在 notepad++ 中使用通配符查找并替换 html 代码

在 notepad++ 中使用通配符查找并替换 html 代码

有人能给我 87 岁老爸一个神奇的答案吗?多年来,至少 10 年来,他一直使用以下简单的 javascript 代码从主页打开一个新窗口,如下所示:

<a href="javascript:openWin12('videok.html')">

但最后我成功说服他停止使用此代码,因为它会弄乱 Xenu 搜索结果,而且我厌倦了浏览他的网站时弹出的新窗口。因此,我建议他从现在起使用此代码打开新选项卡或页面,而不是新窗口,如下所示:

<a target="_blank" class="y" href="videok.html">

他最终非常喜欢这个新代码,以至于他想将他网站上的所有 javascript 代码替换为数百页中的这一行(几百甚至几千行)代码,所以现在我正试图找到一种方法来在 Notepad++ 或 MB-Search&Replace 中为他做到这一点。

因此,任务如下:

从理论上讲,该脚本如下所示:

<a href="javascript:openWin12('videok.html')">

code1 通配符文本 code2 code3

其中代码1=<a href="javascript:openWin12('

widcardtext = videok.html code2 = ') code3 = ">

其中 code1 应替换为

<a target="_blank" class="y" href="

wildcardtext 应该保持不变,

并且 code2 应该被删除

code3 应该保留

顺便说一下,这是他的网页,可以证明我的故事是真实的: www.lezo.hu

答案1

您应该能够使用 notepad++ 中的正则表达式来执行此操作。

寻找:

<a href="javascript:openWin12\('([^)]+)'\)">

用。。。来代替:

<a target="_blank" class="y" href="\1">

如果您使用“在文件中查找”,您可以选择对整个目录树执行此操作。

在此处输入图片描述

这是如何运作的:

如果您不熟悉正则表达式,它们是一种用于查找(和替换)文本的小型编程语言。它的神奇之处在于:

\('([^)]+)'\)

这说明,

  1. \(说找到一个(\是需要的,因为(是特殊的。
  2. 然后(说开始一个捕获组。这用于替换。
  3. [^)]+说找到一个或多个除了)
  4. )结束捕获组
  5. \)匹配)

然后在替换中\1说从捕获组中取出文本并放入替换的文本中。

答案2

你可以给查找和替换试试吧。它有一个简单的用户界面。我经常用它来搜索已更改且需要编辑的脚本中的 UNC 路径 - 对于像我这样总是难以使用 RegExp 的人而言,这是一个完美的工具 ;)

相关内容