反向引用定义: 捕获组(Expression)在匹配成功时,会将子表达式匹配到的内容,保存到内存中一个以数字编号的组里,可以简单的认为是对一个局部变量进行了赋值。引用这个局部变量的值的方式被称为反向引用。
反向引用的表现方式:替换,用"/组号"或者"/组名"表示。
1 组号匹配的反向引用。(替换重复字符串)
string userInputString = "Dr Dr,and Mrs Smith";
userInputString = Regex.Replace(userInputString,@"(/b[A-Z][a-z]/b)/s/1","$1");
Console.WriteLine(userInputString);
userInputString = Regex.Replace(userInputString,@"(/b[A-Z][a-z]/b)/s/1","$1");
Console.WriteLine(userInputString);
2 组名匹配的反向引用。(替换重复字符串)
string
userInputString
=
"
Dr Dr, and Mrs Smith
"
;
userInputString = Regex.Replace(userInputString, @" (?<firstWord>/b[a-zA-Z]+/b)/s/k<firstWord> " , " ${firstWord} " );
Console.WriteLine(userInputString);
userInputString = Regex.Replace(userInputString, @" (?<firstWord>/b[a-zA-Z]+/b)/s/k<firstWord> " , " ${firstWord} " );
Console.WriteLine(userInputString);