string input = "Hello World!";
string pattern = "(World|Universe)";
string replacement = "$1";
string result = Regex.Replace(input, pattern, replacement);
次の例では、が最初のグループに置き換えられるため、結果は次のようになりますが"Hello World!"
、必要な結果は次のようになります。$1
(World|Universe)
"Hello $1!"
このRegex.Escape
メソッドは、スラッシュや他の正規表現パターン文字などの他の文字をエスケープできるため、置換ではなく正規表現パターンをエスケープするために使用することを目的としています。私の問題の明らかな解決策は、私の置き換えをに等しくすること"$$1"
であり、達成するでしょ"Hello $1!"
うが、ドル記号が私が逃げなければならない唯一の値であるかどうか疑問に思いました(replacement
ユーザー生成であり、事前にそれを知らないと仮定します) 、またはこれをすでに実行するヘルパー関数はありますか。
使用する置換値をエスケープする関数を知っている人はいRegex.Replace(string input, string pattern, string replacement)
ますか?