C# 修改正则表达式匹配值

C# 修改正则表达式匹配值,c#,regex,C#,Regex,我想在我的html中找到src不包含http://的所有图像标记,并将http://前置到src属性 我已经让regex找到了所有不以http://开头的img标记。我在将http://单独应用于src属性时遇到了一些问题。如何使用regex replace实现这一点 <img [^<]*src="(?!http://)(?<source>[^"]*)"[^<]*/> [^”]*)”[^ Source将包含src值。我只需要它说$2=“http://”+$

我想在我的html中找到src不包含
http://
的所有图像标记,并将
http://
前置到
src
属性

我已经让regex找到了所有不以http://开头的img标记。我在将http://单独应用于src属性时遇到了一些问题。如何使用regex replace实现这一点

<img [^<]*src="(?!http://)(?<source>[^"]*)"[^<]*/>
[^”]*)”[^

Source将包含src值。我只需要它说
$2=“http://”+$2
。我如何用c#code编写这个值。

因为您不想破坏现有标记,所以需要将组分配给您不感兴趣的字符串部分;为了能够在替换模式中包含匹配部分:

(<img [^<]*src=")(?!http://)(?<source>[^"]*)("[^<]*/>)

(同样,这可能适用于您的应用程序用例,但我应该提到,)

它实际上是regex.Replace(输入,“$1http://$3$2”);$2而不是$4。您应该更新您的答案。谢谢。它工作得很好。最后,我还理解了regex.Replace的概念。谢谢您的帮助。
regex.Replace(input, "$1http://$3$2");