正则表达式将仅具有某个类的链接替换为锚文本

时间:2015-05-04 11:22:40

标签: regex notepad++

我有一个包含有限数量HTML的CSV文件,只有纯文本(标题和段落)和一些链接,所以请不要建议解析而不是正则表达式。 :)

以下是两种类型的链接:

<a href="http://www.example.com/1" class="linkclass" title="linktitle">anchor text 1</a>
<a href="http://www.example.com/2">anchor text 2</a>

与该类的链接始终具有相同的类 - 在此示例中为“linkclass”。它们也总是具有相同的结构:

<a href="X" class="Y" title="Z">anchor text 1</a>

我只需要选择具有“linkclass”类的链接,删除它们并只留下锚文本。其他链接应保持不变。最终结果应该是:

anchor text 1
<a href="http://www.example.com/2">anchor text 2</a>

这是我用来选择这些链接的代码,但它也选择了锚文本:

<a href="(.*?)" class="linkclass" title="(.*?)">(.*?)</a>

如何调整此正则表达式以不选择锚文本?

2 个答案:

答案 0 :(得分:1)

你在这里:

<a\b[^<]*class=['"]?linkclass["']?\b[^<]*?>([^<]*)<\/a>

替换为$1

请参阅demo

答案 1 :(得分:1)

对于记事本++:

点击 CTRL + H
选择替换
然后在底部正则表达式

查找

<a.*?linkclass.*?>(.*?)</a>

替换:

$1

结果:

anchor text 1
<a href="http://www.example.com/2">anchor text 2</a>