Export (0) Print
Expand All

MatchEvaluator Delegate

Represents the method that is called each time a regular expression match is found during a Replace method operation.

Namespace:  System.Text.RegularExpressions
Assemblies:   System.Text.RegularExpressions (in System.Text.RegularExpressions.dll)
  System (in System.dll)

public delegate string MatchEvaluator(
	Match match
)

Parameters

match
Type: System.Text.RegularExpressions.Match

The Match object that represents a single regular expression match during a Replace method operation.

Return Value

Type: System.String
A string returned by the method that is represented by the MatchEvaluator delegate.

The MatchEvaluator type exposes the following members.

  NameDescription
Public propertySupported in .NET for Windows Store appsTargetGets the class instance on which the current delegate invokes the instance method. (Inherited from Delegate.)
Top

  NameDescription
Public methodSupported in .NET for Windows Store appsBeginInvoke
Public methodSupported in .NET for Windows Store appsDynamicInvokeDynamically invokes (late-bound) the method represented by the current delegate. (Inherited from Delegate.)
Public methodSupported in .NET for Windows Store appsEndInvoke
Public methodSupported in .NET for Windows Store appsEqualsDetermines whether this multicast delegate and the specified object are equal. (Inherited from MulticastDelegate.)
Public methodSupported in .NET for Windows Store appsGetHashCodeReturns the hash code for this instance. (Inherited from MulticastDelegate.)
Public methodSupported in .NET for Windows Store appsGetInvocationListReturns the invocation list of this multicast delegate, in invocation order. (Inherited from MulticastDelegate.)
Public methodSupported in .NET for Windows Store appsGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported in .NET for Windows Store appsInvoke
Public methodSupported in .NET for Windows Store appsToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public Extension MethodSupported in .NET for Windows Store appsGetMethodInfoGets an object that represents the method represented by the specified delegate. (Defined by RuntimeReflectionExtensions.)
Top

You can use a MatchEvaluator delegate method to perform a custom verification or manipulation operation for each match found by a replacement method such as Regex.Replace(String, MatchEvaluator). For each matched string, the Replace method calls the MatchEvaluator delegate method with a Match object that represents the match. The delegate method performs whatever processing you prefer and returns a string that the Replace method substitutes for the matched string.

The following code example uses the MatchEvaluator delegate to replace every matched group of characters with the number of the match occurrence.

using System;
using System.Text.RegularExpressions;

class MyClass
{
   static void Main(string[] args)
   {
      string sInput, sRegex;

      // The string to search.
      sInput = "aabbccddeeffcccgghhcccciijjcccckkcc";

      // A very simple regular expression.
      sRegex = "cc";

      Regex r = new Regex(sRegex);
		
      MyClass c = new MyClass();

      // Assign the replace method to the MatchEvaluator delegate.
      MatchEvaluator myEvaluator = new MatchEvaluator(c.ReplaceCC);
		
      // Write out the original string.
      Console.WriteLine(sInput);

      // Replace matched characters using the delegate method.
      sInput = r.Replace(sInput, myEvaluator);

      // Write out the modified string.
      Console.WriteLine(sInput);
   }

   public string ReplaceCC(Match m)
   // Replace each Regex cc match with the number of the occurrence.
   {
      i++;
      return i.ToString() + i.ToString();		
   }
   public static int i=0;
}
// The example displays the following output: 
//       aabbccddeeffcccgghhcccciijjcccckkcc 
//       aabb11ddeeff22cgghh3344iijj5566kk77

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft