使用正则表达式删除图像标记中所有期望的src

时间:2014-08-22 11:21:33

标签: c# regex

我想使用src删除Image标记中regex的所有内容。

我使用的是C#,但我不想使用{{ 1}}我只想使用正则表达式。

如何得到这个?

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

图片标记可能包含许多其他额外属性。

1 个答案:

答案 0 :(得分:0)

澄清我的评论:通常我不建议使用Regex解析HTML。然而,这是少数几次可能没有结束一个灾难复杂的正则表达式字符串,因为在这里你有一个节点,有一对匹配的尖括号。此外,OP只需要来自此字符串的单个标记。如果他需要做更复杂的事情,我同意他应该使用HTMLAgilityPack,但这是完全可行的。

您所做的是使用此正则表达式从字符串中提取标记:(src=['\"].+?['\"])。然后,您将从字符串中提取的内容并将其粘贴到新字符串中:

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

同样,如果这更复杂(或者如果我不得不进行其他HTML操作),我会跳过正则表达式并找到像上述HTMLAgilityPack这样的既定解决方案,因为它提供了更多的HTML操作支持。

但是,我不会将其视为HTML操作,因为您只有一个标签,甚至没有匹配的结束标记。这更像是基本的字符串操作。它类似于计算第二个数字的数字:我怀疑有人会为此导入整个数学库,他们只做N * N.

我完全期望并接受人们会因为考虑使用正则表达式而向我投票。但是,在您这样做之前,请阅读帖子并考虑一下。这是一个边缘情况之一,HTMLAgilityPack会使项目变得更加复杂,除非您没有使用正则表达式,否则不会添加任何内容。正则表达式有它的用途,只有当你滥用它时它才会成为一个可以使用的怪物。