正規表現パターンのすべての出現箇所をカスタム文字列に置き換える関数をC#で作成しようとしています。一致文字列を使用して置換文字列を生成する必要があるため、Regex.Replace()を使用するのではなく、一致をループしようとしています。コードをデバッグすると、正規表現パターンはhtml文字列の一部と一致し、foreachループに入りますが、string.Replace関数は一致を置き換えません。何がこれを引き起こしているのか誰かが知っていますか?
私の関数の簡略化されたバージョン:-
public static string GetHTML() {
string html = @"
<h1>This is a Title</h1>
@Html.Partial(""MyPartialView"")
";
Regex ItemRegex = new Regex(@"@Html.Partial\(""[a-zA-Z]+""\)", RegexOptions.Compiled);
foreach (Match ItemMatch in ItemRegex.Matches(html))
{
html.Replace(ItemMatch.Value, "<h2>My Partial View</h2>");
}
return html;
}