Regex将仅具有特定类的链接替换为锚文本
我有一个CSV文件,其中HTML数量有限,只有纯文本(标题和段落)和一些链接,因此请不要建议使用解析而不是正则表达式。:) 下面是两种类型的链接,它们显示在内部:Regex将仅具有特定类的链接替换为锚文本,regex,notepad++,Regex,Notepad++,我有一个CSV文件,其中HTML数量有限,只有纯文本(标题和段落)和一些链接,因此请不要建议使用解析而不是正则表达式。:) 下面是两种类型的链接,它们显示在内部: <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>
<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>
锚文本1
下面是我用来选择这些链接的代码,但它也选择了锚文本:
<a href="(.*?)" class="linkclass" title="(.*?)">(.*?)</a>
如何调整此正则表达式以不选择锚文本?这里是:
<a\b[^<]*class=['"]?linkclass["']?\b[^<]*?>([^<]*)<\/a>
记事本++的:
按CTRL+H键
选择替换
然后是底部的正则表达式
查找:
结果:
anchor text 1
<a href="http://www.example.com/2">anchor text 2</a>
锚文本1
太好了,可以了。有没有一种方法可以在不使用锚文本的情况下选择它,然后将其替换为空?这取决于您使用的语言。在.NET中,它可以很容易地完成。它是记事本++中的HTML。好的,你仍然可以按照我建议的方式完成。要删除
标记而不使用任何内容,您必须使用更复杂的正则表达式,相信我,编写它是没有用的。好的,我会使用它。谢谢,我会在几分钟内接受答案(在我能够接受它之后)。不,这是纯HTML,我想用正则表达式解决它。我看到你在使用notepad++,我会在下面回答。如果链接在段落中(例如Text“我依赖于你提供的示例,我已经更新了答案
$1
anchor text 1
<a href="http://www.example.com/2">anchor text 2</a>