Regex类的Replace()方法可以在输入字符串中、根据给定的正则表达式找到匹配项,并把找到的匹配项作为单个匹配项返回。Regex类的Replace()方法存在如下10种重载方法。
(1)Regex.Replace(string input,MatchEvaluator evaluator);
(2)Regex.Replace(string input,string replacement);
(3)Regex.Replace(string input,MatchEvaluator evaluator,int count);
(4)Regex.Replace(string input,string replacement,int count);
(5)Regex.Replace(string input,string pattern,MatchEvaluator evaluator);
(6)Regex.Replace(string input,string pattern,string replacement);
(7)Regex.Replace(string input,MatchEvaluator evaluator,int count,int startat);
(8)Regex.Replace(string input,string replacement,int count,int startat);
(9)Regex.Replace(string input,string pattern,MatchEvaluator evaluator,RegexOptions options);
(10)Regex.Replace(string input,string pattern,string replacement,RegexOptions options);
其中,input参数指定输入字符串;evaluator参数指定处理匹配项的委托;replacement参数指定替换的字符串;count参数指定替换的最大次数;pattern参数指定正则表达式;startat参数指定开始搜索的字符位置; options参数指定匹配选项。
下面的代码在字符串“0123456789abcd321bfr 987 ” 中查找正则表达式“/d+”的匹配项,并将匹配项替换为字符串“xyz”。其中,RegexReplace()方法使用Regex类的Replace()静态方法;Replace()方法创建一个Regex实例regex,并使用该实例的Replace()实例方法。
/// <summary>
/// 替换匹配的表达式
/// </summary>
/// <returns></returns>
private string RegexReplace()
{
string input = "0123456789abcd321bfr987";
string pattern = @"/d+";
string replacement = "xyz";
return Regex.Replace(input,pattern,replacement);
}
/// <summary>
/// 替换匹配的表达式
/// </summary>
/// <returns></returns>
private string Replace()
{
string input = "0123456789abcd321bfr987";
string pattern = @"/d+";
string replacement = "xyz";
Regex regex = new Regex(pattern);
return regex.Replace(input,replacement);
}