If you are using C # 3, you can simply create a MatchEvaluator from a lambda expression:
string val = Regex.Replace( "xxx", @"(?<exes>x{1,6})", new MatchEvaluator( m => m.Groups["exes"].Value[0] + " - " + m.Groups["exes"].Value.Length.ToString() ) );
In C # 2, you can use a delegate:
string val = Regex.Replace( "xxx", @"(?<exes>x{1,6})", new MatchEvaluator( delegate(Match m) { return m.Groups["exes"].Value[0] + " - " + m.Groups["exes"].Value.Length.ToString(); } ) );
Guffa
source share