我想在我的html中找到所有图片代码,其中src不包含http://
,并在http://
属性前加src
。
我有正则表达式找到所有不以http://开头的img标签。我在将http://单独应用于src属性时遇到了一些麻烦。如何使用正则表达式替换来实现此目的。
<img [^<]*src="(?!http://)(?<source>[^"]*)"[^<]*/>
Source将包含src值。我只需要说$2 = "http://" + $2
。我怎么能用c#代码写这个。
答案 0 :(得分:2)
由于您不想破坏现有标签,因此您需要将组分配给您不感兴趣的字符串部分;为了能够在替换模式中包含匹配的那些部分:
(<img [^<]*src=")(?!http://)(?<source>[^"]*)("[^<]*/>)
然后替换是微不足道的:
regex.Replace(input, "$1http://$3$2");
(另外,这可能适用于您的应用程序用例,但我应该提及,that in general it is not considered a good idea to parse HTML with regex)