Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex将仅具有特定类的链接替换为锚文本_Regex_Notepad++ - Fatal编程技术网

Regex将仅具有特定类的链接替换为锚文本

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>

我有一个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>

与类的链接始终具有相同的类,在本例中为“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>