我发现了许多类似的帖子,但没有一个回答了我的问题。我想用特定的关键词替换/删除/更改打开和关闭标签。在这种情况下,我试图删除其中带有 href="#" 的所有标签....
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
我有此代码,但我不知道如何留下文本......
find: <a[^h]*href="#"[^>]*> (skip content) </a>
replace: (same content)
or
replace: <a href="somthing"> (same content) </a>
答案1
我正在尝试删除所有包含href="#"
前:
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
后:
leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>
正如房颤在注释中,有一个更好的正则表达式,它可以捕获样本数据中未包含的表达式。
将“查找内容”设置为
<a .*?href="#" .*?>(.*?)</a>
这将匹配包含子句的行后(
href="#"
以及第一个匹配的 之前>
)。笔记:
如果后续子句(在匹配的之前)
>
的值字段中有任何 s,它将无法正常工作>
<a
进一步阅读
答案2
谢谢 David 的回答!但实际上代码:<a .*?href="#">(.*?)</a>
在我的文件中没有找到任何属性。这可能是由于其他配置或 notepad++ 版本不同。我不得不使用此代码:
Find: <a[^h]*href="#"[^>]*>(.*?)</a>
Replace: <a href="new_url">\1</a>