Comment utiliser des groupes nommés lors de l’exécution d’un Regex.Replace ()

Comment utiliser les captures nommées lors de l’exécution de Regex.Replace? Je suis arrivé si loin et il fait ce que je veux mais pas comme je le veux:

[TestCase("First Second", "Second First")] public void NumberedReplaceTest(ssortingng input, ssortingng expected) { Regex regex = new Regex("(?First) (?Second)"); Assert.IsTrue(regex.IsMatch(input)); ssortingng replace = regex.Replace(input, "$2 $1"); Assert.AreEqual(expected, replace); } 

Je veux faire correspondre les deux mots avec des captures nommées, puis utiliser les captures (nommées) lors de la réalisation du remplacement.

Au lieu de "$2 $1" , vous pouvez utiliser "${secondMatch} ${firstMatch}" .

Il y a une liste de tous les remplacements que vous pouvez faire ici .

Voici une liste abrégée:

$ number – Le groupe capturé par numéro.

$ {name} – Le groupe capturé par nom.

$$ – $ littéral.

$ & – Match entier.

$ ` – La chaîne d’entrée avant la correspondance.

$ ‘ – La chaîne d’entrée après la correspondance.

$ + – Le dernier groupe capturé.

$ _ – La chaîne de saisie entière.

Remplacez simplement par ${groupName}

 [TestCase("First Second", "Second First")] public void NumberedReplaceTest(ssortingng input, ssortingng expected) { Regex regex = new Regex("(?First) (?Second)"); Assert.IsTrue(regex.IsMatch(input)); ssortingng replace = regex.Replace(input, "${secondMatch} ${firstMatch}"); Assert.AreEqual(expected, replace); }