Regex.Replace を実行するときに名前付きキャプチャを使用するにはどうすればよいでしょうか? ここまでは実行しましたが、希望どおりには実行されませんでした。
[TestCase("First Second", "Second First")]
public void NumberedReplaceTest(string input, string expected)
{
Regex regex = new Regex("(?<firstMatch>First) (?<secondMatch>Second)");
Assert.IsTrue(regex.IsMatch(input));
string replace = regex.Replace(input, "$2 $1");
Assert.AreEqual(expected, replace);
}
名前付きキャプチャを使用して 2 つの単語を一致させ、置換を実行するときに (名前付き) キャプチャを使用します。
ベストアンサー1
の代わりに"$2 $1"
を使うこともできます"${secondMatch} ${firstMatch}"
。
実行できるすべての置換のリストがありますここ。
以下に短縮リストを示します。
$番号- 番号別にキャプチャされたグループ。
${名前}- 名前でキャプチャされたグループ。
$$- $ リテラル。
$&- 試合全体。
$`- 一致前の入力文字列。
$'- 一致後の入力文字列。
$+- 最後に捕獲されたグループ。
$_- 入力文字列全体。