Ersetzen mit dem Namen Gruppe in regex mit Wert

Möchte ich regulären Ausdruck verwenden gleiche Weise als string.Format. Ich werde erklären,

Habe ich:

string pattern = "^(?<PREFIX>abc_)(?<ID>[0-9])+(?<POSTFIX>_def)$";
string input = "abc_123_def";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
string replacement = "456";
Console.WriteLine(regex.Replace(input, string.Format("${{PREFIX}}{0}${{POSTFIX}}", replacement)));

Dies funktioniert, aber ich muss Sie "input" auf regex.Ersetzen. Ich will nicht, dass. Ich will Muster für, sondern auch für die Erstellung von strings gleicher Weise wie beim string-format, ersetzen benannte Gruppe "ID" mit dem Wert. Ist das möglich?

Ich bin auf der Suche nach etwas wie:

string pattern = "^(?<PREFIX>abc_)(?<ID>[0-9])+(?<POSTFIX>_def)$";
string result = ReplaceWithFormat(pattern, "ID", 999);

Ergebnis enthalten "abc_999_def". Wie dies zu erreichen?

Dies ist nicht genau das, was du suchst, aber kann von Wert sein. Es ist im Grunde eine benannte Zeichenfolge.format, statt indiziert. haacked.com/archive/2009/01/04/...

InformationsquelleAutor Tomas Voracek | 2010-04-16

Schreibe einen Kommentar