我正在尝试删除具有特定类别的整个标签:
代码:
<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++ 和正则表达式
- 打开 Notepad++
- 按CTRL+H
- 选择正则表达式作为搜索模式
- 输入
^.*myClass.*$
寻找什么和什么之下用。。。来代替 - 点击全部替换
开始和结束字符串位于不同行的情况(Notepad 6.xx)
我们使用一种解决方法,暂时删除所有回车符(+换行符)。
这样我们就得到了一行长行,使用 RegEx 会更容易。稍后我们再把回车符放回去。
- 选择一个独特的字符串,例如
%%%NEWLINE%%%
文本中目前未出现过的字符串。首先使用简单的+搜索
进行测试CTRLF - 按CTRL+H并选择正则表达式作为搜索模式
- 查找
\r\n
并替换为%%%NEWLINE%%%
。点击全部替换.
\r\n
是特殊字符,代表回车和新队。您会得到一条长线。
请记住:从现在开始,您不能再使用^
和$
- 查找
<div .*?myClass.*?</div>
并替换为空(注意空格) - 查找
%%%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++ 中缺少的对我来说最重要的部分。