我想使用src
删除Image
标记中regex
的所有内容。
我使用的是C#,但我不想使用{{ 1}}我只想使用正则表达式。
如何得到这个?
如果HTMLAgilityPack
为String
,则返回<img id="image" class="header" src="test.png">
图片标记可能包含许多其他额外属性。
答案 0 :(得分:0)
澄清我的评论:通常我不建议使用Regex解析HTML。然而,这是少数几次可能没有结束一个灾难复杂的正则表达式字符串,因为在这里你有一个节点,有一对匹配的尖括号。此外,OP只需要来自此字符串的单个标记。如果他需要做更复杂的事情,我同意他应该使用HTMLAgilityPack,但这是完全可行的。
您所做的是使用此正则表达式从字符串中提取标记:(src=['\"].+?['\"])
。然后,您将从字符串中提取的内容并将其粘贴到新字符串中:
String newImgTag = String.Format("<img {0}>", srcMatch);
同样,如果这更复杂(或者如果我不得不进行其他HTML操作),我会跳过正则表达式并找到像上述HTMLAgilityPack这样的既定解决方案,因为它提供了更多的HTML操作支持。
但是,我不会将其视为HTML操作,因为您只有一个标签,甚至没有匹配的结束标记。这更像是基本的字符串操作。它类似于计算第二个数字的数字:我怀疑有人会为此导入整个数学库,他们只做N * N.
我完全期望并接受人们会因为考虑使用正则表达式而向我投票。但是,在您这样做之前,请阅读帖子并考虑一下。这是一个边缘情况之一,HTMLAgilityPack会使项目变得更加复杂,除非您没有使用正则表达式,否则不会添加任何内容。正则表达式有它的用途,只有当你滥用它时它才会成为一个可以使用的怪物。