Прочитать на английском

Поделиться через


MatchEvaluator Делегат

Определение

Представляет метод, вызываемый каждый раз, когда обнаружено совпадение регулярного выражения во время работы метода Replace.

C#
public delegate string MatchEvaluator(Match match);
C#
[System.Serializable]
public delegate string MatchEvaluator(Match match);

Параметры

match
Match

Объект Match, представляющий отдельное совпадение регулярного выражения во время работы метода Replace.

Возвращаемое значение

Строка, возвращенная методом, представленным делегатом MatchEvaluator.

Атрибуты

Примеры

В следующем примере кода делегат используется для MatchEvaluator замены каждой группы сопоставленных символов номером вхождения совпадения.

C#
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

Комментарии

Метод делегата MatchEvaluator можно использовать для выполнения пользовательской проверки или операции манипуляции для каждого совпадения, найденного методом замены, Regex.Replace(String, MatchEvaluator)например . Для каждой Replace сопоставленной строки метод вызывает метод делегата MatchEvaluator с Match объектом, представляющим совпадение. Метод делегата выполняет любую обработку и возвращает строку, которую Replace метод заменяет сопоставленной строкой.

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел