.class 特定的搜索和替换

.class 特定的搜索和替换

我正在尝试删除具有特定类别的整个标签:

代码:

<div> 
Blah blah 
<div class='myClass'>
  <div>some other div</div>
</div>
</div>

<div> 
Blah blah 
<div class='myClass'>
  more text
</div>
</div>

<div> 
Blah blah 
<div class='myClass'>
  more text
</div>
</div>

我想搜索 .myClass 标签并将其替换为“”(删除)
所以结果是:

<div> 
Blah blah 

</div>

<div> 
Blah blah 

</div>

<div> 
Blah blah 

</div>

我知道使用 jQuery 很容易,但我想在文本编辑器端执行此操作。或者也许我可以在 jquery 删除代码后查看代码并复制它。Sublime Text 或 Notepad++

谢谢!

答案1

使用 notepad++ 和正则表达式

  1. 打开 Notepad++
  2. CTRL+H
  3. 选择正则表达式作为搜索模式
  4. 输入^.*myClass.*$寻找什么和什么之下用。。。来代替
  5. 点击全部替换

在此处输入图片描述


开始和结束字符串位于不同行的情况(Notepad 6.xx)

我们使用一种解决方法,暂时删除所有回车符(+换行符)。
这样我们就得到了一行长行,使用 RegEx 会更容易。稍后我们再把回车符放回去。

  1. 选择一个独特的字符串,例如%%%NEWLINE%%%文本中目前未出现过的字符串。首先使用简单的+搜索
    进行测试CTRLF
  2. CTRL+H并选择正则表达式作为搜索模式
  3. 查找\r\n并替换为%%%NEWLINE%%%。点击全部替换.
    \r\n是特殊字符,代表回车新队。您会得到一条长线。
    请记住:从现在开始,您不能再使用^$
  4. 查找<div .*?myClass.*?</div>并替换为空(注意空格)
  5. 查找%%%NEWLINE%%%并替换以\r\n恢复正常的文本结构

在撰写我的编辑时,我注意到您已将问题更改为游戏破坏者。当您有嵌套<div></div>标签时,此方法(可能根本没有 RegEx 方法)将不起作用。RegEx 引擎无法知道它是否应该在第 2、第 3 还是第 n 个停止</div>

使用 RegEx

^  → line beginning
.  → any single character
*  → repeat previous pattern 
.*  → any characters as long as possible (greedy)  
.*? → any characters as short as possible (non greedy)
$  → line end

使用的资源

答案2

我仍然使用 Dreamweaver,主要是因为它的“特定标签”搜索功能。您可以轻松查找、删除、剥离和更改所有内容。对于您的情况,您可以找到每个div带有myClass类的标签并删除带有内容的标签。只需 5 秒钟即可获得您想要的结果。

您可以在此链接上查看其工作原理http://www.lehigh.edu/computing/web/IntDreamweaver/find.html

这是 notepad++ 中缺少的对我来说最重要的部分。

相关内容