Regex用于移除

本文关键字:用于 Regex | 更新日期: 2023-09-27 18:23:50

我想要一个正则表达式来删除以下内容:

<a class="a" href="a.com">string</a>

我想要的是,如果标签中有一个类属性,我希望删除整个标签(<a class="a" href="a.com"></a>)和检索标签之间的字符串(string),否则保持原样。

Regex用于移除

我建议使用像HTML敏捷包这样的HTML解析器,而不是尝试用RegEx来做这件事——正如这个答案所解释的,RegEx不是解析普通HTML的好工具。

下载附带了一堆VisualStudio项目作为使用示例。

Html敏捷包(HAP)究竟是什么?

这是一个敏捷的HTML解析器,它构建了一个读/写DOM,并支持普通的XPATH或XSLT(你实际上不需要理解XPATH也不需要XSLT就可以使用它,别担心…);出网";HTML文件。解析器对";真实世界";格式错误的HTML。对象模型与System.Xml非常相似,但适用于HTML文档(或流)。

Html敏捷包现在支持Linq-to-Objects(通过Linq-to-Xml-Like接口)。查看新的测试版以使用此功能

如果您想解析HTML,最好使用XML解析器,这是其他人已经推荐的。

但既然你想要regex,我就想出了这个:http://regexr.com?2vuqs

<([^ ]+)([ 't]+[a-zA-Z-]+=(["'])[^'3]+?'3)*[ 't]+class=(["'])[^'4]'4([ 't]+[a-zA-Z-]+=(["'])[^'6]+?'6)*>([^<]+)</('1)>

它不是防故障的,但它应该能处理大多数情况。检查链接以查看其工作情况。