Freigeben über


Aktivitäten mit regulären Ausdrücken

Dieses Thema gilt für Windows Workflow Foundation 4.

In diesem Beispiel wird veranschaulicht, wie ein Satz von Aktivitäten erstellt wird, der die reguläre Ausdrucksfunktionalität des System.Text.RegularExpressions-Namespaces verfügbar macht. Diese benutzerdefinierten Aktivitäten können innerhalb einer Workflowanwendung verwendet werden. Weitere Informationen über regulären Ausdrücken finden Sie unter dem Namespace N:System.Text.RegularExpressions.

In der folgenden Tabelle sind die benutzerdefinierten Aktivitäten in diesem Beispiel aufgeführt.

Aktivität Beschreibung

IsMatch

Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der Eingabezeichenfolge gefunden hat.

Matches

Sucht in einer Eingabezeichenfolge nach allen Vorkommnissen eines regulären Ausdrucks und gibt alle erfolgreichen Übereinstimmungen zurück.

Replace

Ersetzt innerhalb einer angegebenen Eingabezeichenfolge Zeichenfolgen, die ein Muster eines regulären Ausdrucks mit einer angegebenen Ersatzzeichenfolge vergleichen.

IsMatch

Die benutzerdefinierte IsMatch-Aktivität gibt true zurück, wenn die Input-Zeichenfolge eine Übereinstimmung im regulären Ausdruck findet, der in der Pattern-Eigenschaft angegeben ist. Wenn die Aktivität von CodeActivity abgeleitet wird, ruft die Execute-Methode die IsMatch-Methode auf.

In der folgenden Tabelle sind die Eigenschaften und der Rückgabewert für die benutzeraktivierte IsMatch-Aktivität beschrieben.

Eigenschaft oder Rückgabewert Beschreibung

Muster (erforderlich)

Der für die Suche zu verwendende reguläre Ausdruck.

Eingabe (erforderlich)

Die zu suchende Eingabezeichenfolge.

RegexOptions

Bitweise OR-Kombination von RegexOptions-Enumerationswerten.

Rückgabewert

true, wenn die Eingabe eine Übereinstimmung im bereitgestellten Muster findet; andernfalls false.

Das folgende Codebeispiel zeigt, wie Sie die benutzerdefinierte IsMatch-Aktivität verwenden.

new IsMatch
{
    Pattern = new InArgument<string>( @"^-?\d+(\.\d{2})?$"),
    Input = "20.00",
};

Matches

Die benutzerdefinierte Matches-Aktivität sucht in einer Eingabezeichenfolge nach allen Vorkommnissen eines regulären Ausdrucks und gibt alle erfolgreichen Übereinstimmungen zurück. Wenn die Aktivität von CodeActivity abgeleitet wird, ruft die Execute-Methode die Matches-Methode auf.

In der folgenden Tabelle sind die Eigenschaften und der Rückgabewert für die benutzeraktivierte IsMatch-Aktivität beschrieben.

Eigenschaft oder Rückgabewert Beschreibung

Muster (erforderlich)

Der für die Suche zu verwendende reguläre Ausdruck.

Eingabe (erforderlich)

Die zu suchende Eingabezeichenfolge.

RegexOptions

Bitweise OR-Kombination von RegexOptions-Enumerationswerten.

Rückgabewert

Eine MatchCollection, die die Auflistung erfolgreicher Übereinstimmungen enthält.

Das folgende Codebeispiel zeigt, wie Sie die benutzerdefinierte Matches-Aktivität verwenden.

new Matches
{
    Pattern = @"\b(?<word>\w+)\s+(\k<word>)\b",
    Input = "The quick brown fox  fox jumped over over the lazy dog dog.",
};

Replace

Die benutzerdefinierte Replace-Aktivität sucht eine Eingabezeichenfolge und ersetzt alle Zeichenfolgen, die einen angegebenen regulären Ausdruck mit einer Zeichenfolge vergleichen. Wenn die Aktivität von CodeActivity abgeleitet wird, ruft die Execute-Methode die Replace-Methode auf.

In der folgenden Tabelle sind die Eigenschaften und der Rückgabewert für die benutzeraktivierte Replace Aktivität beschrieben.

Eigenschaft oder Rückgabewert Beschreibung

Muster (erforderlich)

Der für die Suche zu verwendende reguläre Ausdruck.

Eingabe (erforderlich)

Die zu suchende Eingabezeichenfolge.

Ersetzung

Die Ersatzzeichenfolge.

Wenn eine Replacement angegeben wurde, wird die MatchEvaluator-Eigenschaft ignoriert. Es muss entweder die Replacement-Eigenschaft oder die MatchEvaluator-Eigenschaft angegeben werden.

MatchEvaluator

Eine benutzerdefinierte Methode, die jede Übereinstimmung überprüft und entweder die ursprüngliche entsprechende Zeichenfolge oder eine Ersatzzeichenfolge zurückgibt.

Wenn eine Replacement angegeben wurde, wird die MatchEvaluator-Eigenschaft ignoriert. Es muss entweder die Replacement-Eigenschaft oder die MatchEvaluator-Eigenschaft angegeben werden.

RegexOptions

Bitweise OR-Kombination von RegexOptions-Enumerationswerten.

Rückgabewert

Eine MatchCollection, die die Auflistung erfolgreicher Übereinstimmungen enthält.

Das folgende Codebeispiel zeigt, wie Sie die benutzerdefinierte Replace-Aktivität verwenden.

// Using the replacement string.
new Replace
{
    Pattern = @"\bWorld\b",
    Input = "Hello World! This is a wonderful World",
    Replacement = "Universe"
};

// Using a match evaluator.
new Replace
{
    Pattern = new InArgument<string>(pattern),
    Input = new InArgument<string>(input),
    MatchEvaluator = new MatchEvaluator(CapText)                
};

So verwenden Sie dieses Beispiel

  1. Öffnen Sie mit Visual Studio 2010 die Projektmappendatei RegexActivities.sln.

  2. Drücken Sie F6, um die Projektmappe zu erstellen.

  3. Drücken Sie STRG+F5, um die Projektmappe auszuführen.

Dd797587.Important(de-de,VS.100).gif Hinweis:
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie den Vorgang fortsetzen.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\Regex