MatchEvaluator Delegato
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta il metodo chiamato ogni volta che si individua una corrispondenza di un'espressione regolare durante un'operazione del metodo Replace.
public delegate System::String ^ MatchEvaluator(Match ^ match);
public delegate string MatchEvaluator(Match match);
[System.Serializable]
public delegate string MatchEvaluator(Match match);
type MatchEvaluator = delegate of Match -> string
[<System.Serializable>]
type MatchEvaluator = delegate of Match -> string
Public Delegate Function MatchEvaluator(match As Match) As String
Parametri
- match
- Match
Oggetto Match che rappresenta una corrispondenza di un'espressione regolare singola durante un'operazione del metodo Replace.
Valore restituito
Stringa restituita dal metodo rappresentato dal delegato MatchEvaluator.
- Attributi
Esempio
Nell'esempio di codice seguente viene usato il MatchEvaluator delegato per sostituire ogni gruppo di caratteri corrispondente con il numero di occorrenze della corrispondenza.
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
ref class MyClass
{
public:
static int i = 0;
static String^ ReplaceCC( Match^ m )
{
// Replace each Regex cc match with the number of the occurrence.
i++;
return i.ToString();
}
};
int main()
{
String^ sInput;
String^ sRegex;
// The string to search.
sInput = "aabbccddeeffcccgghhcccciijjcccckkcc";
// A very simple regular expression.
sRegex = "cc";
Regex^ r = gcnew Regex( sRegex );
// Assign the replace method to the MatchEvaluator delegate.
MatchEvaluator^ myEvaluator = gcnew MatchEvaluator( &MyClass::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 );
}
// The example displays the following output:
// aabbccddeeffcccgghhcccciijjcccckkcc
// aabb11ddeeff22cgghh3344iijj5566kk77
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
Imports System.Text.RegularExpressions
Module Module1
Public Sub Main()
Dim sInput, sRegex As String
' The string to search.
sInput = "aabbccddeeffcccgghhcccciijjcccckkcc"
' A very simple regular expression.
sRegex = "cc"
Dim r As Regex = New Regex(sRegex)
' Assign the replace method to the MatchEvaluator delegate.
Dim myEvaluator As MatchEvaluator = New MatchEvaluator(AddressOf 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)
End Sub
Public Function ReplaceCC(ByVal m As Match) As String
' Replace each Regex match with the number of the match occurrence.
static i as integer
i = i + 1
Return i.ToString() & i.ToString()
End Function
End Module
' The example displays the following output:
' aabbccddeeffcccgghhcccciijjcccckkcc
' aabb11ddeeff22cgghh3344iijj5566kk77
Commenti
È possibile usare un MatchEvaluator metodo delegato per eseguire un'operazione di verifica o manipolazione personalizzata per ogni corrispondenza trovata da un metodo sostitutivo, Regex.Replace(String, MatchEvaluator)ad esempio . Per ogni stringa corrispondente, il metodo chiama il ReplaceMatchEvaluator metodo delegato con un Match oggetto che rappresenta la corrispondenza. Il metodo delegato esegue qualsiasi elaborazione preferita e restituisce una stringa che il Replace metodo sostituisce per la stringa corrispondente.
Metodi di estensione
GetMethodInfo(Delegate) |
Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato. |