C# 使用正则表达式在匹配之前插入字符

C# 使用正则表达式在匹配之前插入字符,c#,regex,C#,Regex,我知道我可以使用正则表达式将所有出现的“a”、“b”或“c”替换为字符串中的黑色斜杠字符,如下所示: string result = Regex.Replace(input, "[abc]", "\\"); 但是如何用反斜杠替换每个匹配的字符呢?您可以使用委托和 无需使用任何MatchEvaluator,Regex.Replace提供了在替换模式中访问整个匹配值的专用方法:$&。见: $&替换将整个匹配项包含在替换字符串中。通常,它用于将子字符串添加到匹配字符串的开头或结尾。例如,($&)替换

我知道我可以使用正则表达式将所有出现的“a”、“b”或“c”替换为字符串中的黑色斜杠字符,如下所示:

string result = Regex.Replace(input, "[abc]", "\\");
但是如何用反斜杠替换每个匹配的字符呢?

您可以使用委托和


无需使用任何
MatchEvaluator
Regex.Replace
提供了在替换模式中访问整个匹配值的专用方法:
$&
。见:

$&
替换将整个匹配项包含在替换字符串中。通常,它用于将子字符串添加到匹配字符串的开头或结尾。例如,(
$&
)替换模式在每个匹配的开头和结尾添加括号。如果没有匹配项,
$&
替换无效

使用

:

Regex.Replace(input, @"[abc]", m => string.Format(@"\{0}", m.Value))
var result = Regex.Replace(input, @"[abc]", @"\$&");
var s = "abcd";
var result = Regex.Replace(s, @"[abc]", @"\$&");
Console.WriteLine(result);
// => \a\b\cd