使用Regex删除图像标签中除src之外的所有内容
本文关键字:src 删除 Regex 图像 标签 使用 | 更新日期: 2023-09-27 18:19:02
我想删除Image
标签中使用regex
的src
的所有内容。
我使用c#,但我不想使用HTMLAgilityPack
,我只想使用regex。
如何得到这个?
如果String
为<img id="image" class="header" src="test.png">
,则返回<img src="test.png">
图像标签可以包含许多其他额外的属性。
澄清我的评论:通常我不建议使用Regex解析HTML。然而,这是少数几次可能不会以极其复杂的regex字符串结束的情况之一,因为这里有一个节点,有一对匹配的尖括号。此外,OP只需要这个字符串中的一个标记。如果他需要做更复杂的事情,我同意他应该使用htmllagilitypack,但这是完全可行的。
您要做的是使用此regex: (src=[''"].+?[''"])
从字符串中提取标记。然后将从字符串中提取的内容粘贴到新字符串中:
String newImgTag = String.Format("<img {0}>", srcMatch);
同样,如果这更复杂(或者如果我必须做其他HTML操作),我将跳过正则表达式并使用既定的解决方案,如前面提到的HTMLAgilityPack,因为它为HTML操作提供了更多的支持。
然而,我不认为这是HTML操作,因为你得到了一个标签,甚至没有匹配的结束标签。这更像是基本的字符串操作。这类似于计算一个数字的二次幂:我怀疑有人会为此导入整个数学库,他们只会做N * N。
我完全预料到并接受人们会因为我考虑使用Regex而反对我。然而,在你这么做之前,请阅读这篇文章并思考一下。这是一种边缘情况,在这种情况下,htmllagilitypack会使项目变得更加复杂,而实际上没有添加任何东西,除了你没有使用Regex。Regex有它的用途,只有当你滥用它的时候,它才会变成一个怪物。