使用Regex删除图像标签中除src之外的所有内容

本文关键字:src 删除 Regex 图像 标签 使用 | 更新日期: 2023-09-27 18:19:02

我想删除Image标签中使用regexsrc的所有内容。

我使用c#,但我不想使用HTMLAgilityPack,我只想使用regex。

如何得到这个?

如果String<img id="image" class="header" src="test.png">,则返回<img src="test.png">

图像标签可以包含许多其他额外的属性。

使用Regex删除图像标签中除src之外的所有内容

澄清我的评论:通常我不建议使用Regex解析HTML。然而,这是少数几次可能不会以极其复杂的regex字符串结束的情况之一,因为这里有一个节点,有一对匹配的尖括号。此外,OP只需要这个字符串中的一个标记。如果他需要做更复杂的事情,我同意他应该使用htmllagilitypack,但这是完全可行的。

您要做的是使用此regex: (src=[''"].+?[''"])从字符串中提取标记。然后将从字符串中提取的内容粘贴到新字符串中:

String newImgTag = String.Format("<img {0}>", srcMatch);

同样,如果这更复杂(或者如果我必须做其他HTML操作),我将跳过正则表达式并使用既定的解决方案,如前面提到的HTMLAgilityPack,因为它为HTML操作提供了更多的支持。

然而,我不认为这是HTML操作,因为你得到了一个标签,甚至没有匹配的结束标签。这更像是基本的字符串操作。这类似于计算一个数字的二次幂:我怀疑有人会为此导入整个数学库,他们只会做N * N。

我完全预料到并接受人们会因为我考虑使用Regex而反对我。然而,在你这么做之前,请阅读这篇文章并思考一下。这是一种边缘情况,在这种情况下,htmllagilitypack会使项目变得更加复杂,而实际上没有添加任何东西,除了你没有使用Regex。Regex有它的用途,只有当你滥用它的时候,它才会变成一个怪物。