使用正则表达式在匹配之前插入字符
本文关键字:插入 字符 正则表达式 | 更新日期: 2023-09-27 18:34:48
我知道我可以使用正则表达式将字符串中所有出现的"a"、"b"或"c"替换为黑斜杠字符,如下所示:
string result = Regex.Replace(input, "[abc]", "''");
但是,如何将每个匹配项替换为反斜杠,后跟匹配的字符?
您可以使用 MatchEvaluator 委托和此重载 Replace...
Regex.Replace(input, @"[abc]", m => string.Format(@"'{0}", m.Value))
不需要使用任何MatchEvaluator
,Regex.Replace
提供了专用的方法来访问替换模式中的整个匹配值:$&
。请参阅替换整个匹配项:
替换
$&
包括替换字符串中的整个匹配项。通常,它用于将子字符串添加到匹配字符串的开头或结尾。例如,($&
( 替换模式在每个匹配项的开头和结尾添加括号。如果没有匹配项,则$&
替换无效。
用
var result = Regex.Replace(input, @"[abc]", @"'$&");
C# 演示:
var s = "abcd";
var result = Regex.Replace(s, @"[abc]", @"'$&");
Console.WriteLine(result);
// => 'a'b'cd