Regex.Replace Method (String, MatchEvaluator)

Within a specified input string, replaces all strings that match a specified regular expression with a string returned by a MatchEvaluator delegate.

Namespace: System.Text.RegularExpressions
Assembly: System (in system.dll)

public string Replace (
	string input,
	MatchEvaluator evaluator
public String Replace (
	String input, 
	MatchEvaluator evaluator
public function Replace (
	input : String, 
	evaluator : MatchEvaluator
) : String
Not applicable.



The string to search for a match.


A custom method that examines each match and returns either the original matched string or a replacement string.

Return Value

A new string that is identical to the input string, except that a replacement string takes the place of each matched string.

Exception typeCondition


input is a null reference (Nothing in Visual Basic).


evaluator is a null reference (Nothing in Visual Basic).

The regular expression is the pattern defined by the constructor for the current Regex object. The evaluator parameter is the delegate for a custom method that you define and that examines each match. Your custom method returns a string that replaces the matched input.

The following code example displays an original string, matches each word in the original string, converts the first character of each match to uppercase, then displays the converted string.

using System;
using System.Text.RegularExpressions;

class RegExSample
    static string CapText(Match m)
        // Get the matched string.
        string x = m.ToString();
        // If the first char is lower case...
        if (char.IsLower(x[0]))
            // Capitalize it.
            return char.ToUpper(x[0]) + x.Substring(1, x.Length - 1);
        return x;

    static void Main()
        string text = "four score and seven years ago";

        System.Console.WriteLine("text=[" + text + "]");

        Regex rx = new Regex(@"\w+");

        string result = rx.Replace(text, new MatchEvaluator(RegExSample.CapText));
        System.Console.WriteLine("result=[" + result + "]");

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions