如何在Notepad++中删除具有特定开头和结尾的行的一部分?

3
假设,例如,我有一些包含许多元素的 HTML 代码,看起来像这样。
<div id="1-element" class="1-element">...</div>
<div id="2-element" class="2-element">...</div>
...
<div id="99-element" class="99-element">...</div>
<div id="100-element" class="100-element">...</div>
...

我需要使用正则表达式在整个文档中仅删除所有class="*-element"部分,但保留divid和其他内容。请问在Notepad++中我该如何实现呢?
3个回答

2
\bclass="\d+-element"

这应该能满足您的需求。

它找到了整行,但应该只找其中的一部分。我稍微澄清了一下我的问题。 - Vlad Zhukov
如果没有空格,它可以正常工作,但如果出现 class="element *-element" 这样的情况该怎么办? - Vlad Zhukov
@Freeeeez 使用 \bclass="[^"]*element" - vks

1
这对我很有用:
  • 在Notepad++中,打开搜索窗口,选择替换选项卡。

  • 查找内容:\sclass="\d+-element"

  • 勾选正则表达式。

  • 点击全部替换。

  • 结果如下:

<div id="1-element">...</div>

<div id="2-element">...</div>

<div id="99-element">...</div>

<div id="100-element">...</div>


1
您可以使用以下正则表达式替换:
查找内容: class="[^"]+-element"(?=[^>]*>) 替换为:空字符串
请注意,[^"]+将匹配任何内容,而不仅仅是在-element之前的数字,并且(?=[^>]*>)的预先搜索将确保我们只删除节点内部的class属性。

enter image description here


它也可以工作,但遗憾的是我不能同时标记两个答案为正确。 - Vlad Zhukov
你应该只标记对你最有效的答案为已接受。我很高兴vks的解决方案起作用了,class="ddd-element"出现在文本中而不是在开放节点之外的可能性确实不太大,尽管这也有可能发生。 - Wiktor Stribiżew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接