Reguläre Ausdrücke in Transportregeln

 

Gilt für: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Letztes Änderungsdatum des Themas: 2009-04-09

In diesem Thema wird die Implementierung regulärer Ausdrücke beschrieben, die mit Prädikaten für Transportregeln verwendet werden können. Prädikate werden von Bedingungen und Ausnahmen zum Bestimmen verwendet, ob eine konfigurierte Aktion oder mehrere Aktionen auf eine E-Mail-Nachricht angewendet werden sollen.

Weitere Informationen zu Transportregeln finden Sie unter Übersicht über Transportregeln.

Was sind reguläre Ausdrücke?

Zuerst müssen Sie verstehen, was ein einfacher Ausdruck ist. Ein einfacher Ausdruck stellt einen bestimmten Wert dar, dem eine Bedingung oder Ausnahme zugeordnet werden soll. Ein Beispiel für einen einfachen Ausdruck ist der Titel eines Dokuments, von dem Ihre Organisation nicht wünscht, dass es außerhalb der Organisation veröffentlicht wird. Daten in einer E-Mail-Nachricht müssen einem einfachen Ausdruck genau entsprechen, um eine Bedingung oder Ausnahme in Transportregeln zu erfüllen.

Ein regulärer Ausdruck ist eine genaue und flexible Notation zum Suchen nach Mustern oder Text in einer Nachricht. Die Notation besteht aus zwei grundlegenden Zeichntypen: literalen (normalen) Textzeichen, die Text angeben, der in der Zielzeichenfolge vorhanden sein muss, und Metazeichen, die angeben oder steuern, wie der Text in der Zielzeichenfolge abweichen darf. Sie können reguläre Ausdrücke verwenden, um E-Mail-Nachrichten schnell zu analysieren und nach bestimmten Zeichenmustern zu suchen.

Die Möglichkeit, in einer E-Mail-Nachricht nach Textmustern zu suchen, ermöglicht es, Prädikate Daten in Nachrichten zuzuordnen, die sich dynamisch ändern können. Beispiele für solche Daten sind Sozialversicherungsnummern und Patentnummern. Sie können diese Daten nicht mit vertretbarem Aufwand durch einen einfachen Ausdruck ermitteln, weil der einfache Ausdruck verlangt, dass Sie jede Variante des Werts eingeben, den Sie suchen möchten. Indem reguläre Ausdrücke verwendet werden, können Sie das Prädikat so konfigurieren, dass nach dem Muster der Sozialversicherungsnummern und Patentnummern in einer Nachricht gesucht wird.

Sie können reguläre Ausdrücke in jedem beliebigen Bedingungs- oder Ausnahmeregelprädikat mit Ausnahme von "ist ein Übermittlungsbericht" verwenden. Weitere Informationen dazu, welche Prädikate die Musterzuordnung durch reguläre Ausdrücke annehmen, finden Sie unter Transportregelprädikate.

Implementieren regulärer Ausdrücke

In der Exchange-Verwaltungsshell können Sie reguläre Ausdrücke in jedem Prädikat verwenden, das die Patterns-Prädikateigenschaft annimmt. In der Exchange-Verwaltungskonsole können Sie reguläre Ausdrücke mit jeder Bedingung oder Ausnahme verwenden, die die Wörter mit Textmustern enthält. Tabelle 1 listet alle Musterzeichenfolgen auf, die zum Erstellen einer Musterzuordnung durch reguläre Ausdrücke verwendet werden können.

CautionAchtung:
Sie müssen die von Ihnen erstellten regulären Ausdrücke sorgfältig testen, damit sichergestellt wird, dass sie die erwarteten Ergebnisse liefern. Ein falsch konfigurierter regulärer Ausdruck kann unerwartete Übereinstimmungen liefern und zu unerwünschtem Verhalten der Transportregel führen. Testen Sie Ihre regulären Ausdrücke in einer Testumgebung, bevor Sie sie in der Produktionsumgebung implementieren.

Tabelle 1   Musterzeichenfolgen

Musterzeichenfolge Beschreibung

\S

Die Musterzeichenfolge \S entspricht einem beliebigen einzelnen Zeichen, das kein Leerzeichen ist.

\s

Die Musterzeichenfolge \s entspricht einem beliebigen einzelnen Leerzeichen.

\D

Die Musterzeichenfolge \D entspricht einem beliebigen nicht-numerischen Zeichen.

\d

Die Musterzeichenfolge \d entspricht einem beliebigen einzelnen numerischen Zeichen.

\w

Die Musterzeichenfolge \w entspricht einem beliebigen einzelnen Unicode-Zeichen, das der Kategorie "Buchstabe" oder "Dezimalzahl" zugeordnet ist.

|

Der senkrechte Strich (|) führt eine OR-Funktion aus.

*

Das Sternchen oder Platzhalterzeichen (*) entspricht null oder mehr Vorkommen des vorherigen Zeichens. ab*c entspricht z. B. den folgenden Zeichenfolgen: ac, abc, abbbbc.

( )

Runde Klammern fungieren als Gruppentrennzeichen. a(bc)* entspricht z. B. den folgenden Zeichenfolgen: a, abc, abcbc, abcbcbc usw.

\

Der umgekehrte Schrägstrich (\) ist das Escapezeichen, das zusammen mit einem Sonderzeichen verwendet wird. Die folgenden Zeichen werden als Sonderzeichen in Musterzeichenfolgen verwendet:

  • Umgekehrter Schrägstrich: \

  • Pipesymbol: |

  • Sternchen: *

  • Öffnende runde Klammer: (

  • Schließende runde Klammer: )

  • Zirkumflexzeichen: ^

  • Dollarzeichen: $

Wenn Sie z. B. eine Zeichenfolge suchen möchten, die (525) enthält, geben Sie \(525\) ein.

\\

Zwei umgekehrte Schrägstriche werden verwendet, wenn der umgekehrte Schrägstrich als solcher und nicht als ein Escapezeichen erkannt werden soll. Wenn Sie z. B. eine Zeichenfolge suchen möchten, die \d enthält, geben Sie \\d ein.

^

Das Zirkumflexzeichen (^) gibt an, dass die auf das Zirkumflexzeichen folgende Musterzeichenfolge am Beginn der Textzeichenfolge vorhanden sein muss, die gesucht werden soll. ^fred@contoso entspricht z. B. fred@contoso.com und fred@contoso.co.uk, nicht jedoch alfred@contoso.com.

Dieses Zeichen kann auch zusammen mit dem Dollarzeichen ($) verwendet werden, um die genaue Zeichenfolge anzugeben, die gesucht werden soll. ^kim@contoso.com$ entspricht z. B. nur kim@contoso.com und keinen anderen Adressen wie z. B. kim@contoso.com.au.

$

Das Dollarzeichen ($) gibt an, dass die vorherige Musterzeichenfolge am Ende der Textzeichenfolge vorhanden sein muss, die gesucht werden soll. contoso.com$ entspricht z. B. adam@contoso.com und kim@research.contoso.com, nicht jedoch kim@contoso.com.au.

Dieses Zeichen kann auch zusammen mit dem Zirkumflexzeichen (^) verwendet werden, um die genaue Zeichenfolge anzugeben, die gesucht werden soll. ^kim@contoso.com$ entspricht z. B. nur kim@contoso.com und keinen anderen Adressen wie z. B. chris@sales.contoso.com.

Mithilfe von Tabelle 1 können Sie einen regulären Ausdruck erstellen, der nach den Datenmustern sucht, die Sie finden möchten. Arbeiten Sie von links nach rechts, und untersuchen Sie jedes Zeichen oder jede Zeichengruppe in den Daten, die Sie zuordnen möchten. Lesen Sie die Beschreibung der einzelnen Musterzeichenfolgen, und ermitteln Sie, wie diese auf die Daten angewendet werden, die Sie durchsuchen möchten. Ermitteln Sie dann, welche Musterzeichenfolge in Tabelle 1 dieses Zeichen oder die Zeichengruppe darstellt, und fügen Sie dem regulären Ausdruck diese Zeichenfolge hinzu. Wenn Sie damit fertig sind, verfügen Sie über einen vollständig konstruierten regulären Ausdruck.

Der folgende reguläre Ausdruck entspricht z. B. nordamerikanischen Rufnummern im Format 425 555-0100 bzw. 425.555.0100:

425(\s|.)\d\d\d(-|.)\d\d\d\d

Sie können dieses Beispiel erweitern, indem Sie das Rufnummerformat (425) 555-0100 hinzufügen, das die Ortskennzahl in Klammern einschließt. Der folgende reguläre Ausdruck entspricht allen drei Rufnummernformaten:

(\\()*\d\d\d(\\)|\s|.)\d\d\d(-|.)\d\d\d\d

Sie können die vorherigen Beispiele wie folgt analysieren:

  • (\\()*   Diese Angabe macht die ersten Klammern optional. Da die schließende Klammer außerdem selbst ein Trennzeichen in regulären Ausdrücken ist, muss sie als Literal angegeben werden, indem zwei umgekehrte Schrägstriche \\ verwendet werden. Die umschließenden Klammern (()) gruppieren die \\(-Zeichen, damit das Sternchen * (Platzhalterzeichen) die Zeichen \\( optional machen kann.

  • \d\d\d   Diese Angabe verlangt, dass als nächstes genau drei Ziffern folgen.

  • (\\)|\s|.)   Diese Angabe verlangt, dass eine öffnende Klammer, ein Leerzeichen oder ein Punkt nach der dreistelligen Zahl vorhanden ist. Jede der Zeichen zuordnenden Zeichenfolgen ist in den Gruppentrennzeichen enthalten und wird durch einen senkrechten Strich getrennt. Dies bedeutet, dass nur eines der angegebenen Zeichen innerhalb der Gruppentrennzeichen an dieser Position in der Zeichenfolge vorhanden sein darf, die zugeordnet wird.

  • \d\d\d   Diese Angabe verlangt, dass als nächstes genau drei Ziffern folgen.

  • (-|.)   Diese Angabe verlangt, dass ein Bindestrich oder ein Punkt nach der dreistelligen Zahl vorhanden ist. Da der Bindestrich und der Punkt in den Gruppentrennzeichen vorhanden sind, darf nur eines der zwei Zeichen an dieser Position in der Zeichenfolge vorhanden sein, die zugeordnet wird.

  • \d\d\d\d   Diese Angabe verlangt, dass als nächstes genau vier Ziffern folgen.

Beispiel für eine Transportregel, die einen regulären Ausdruck verwendet

Das folgende Beispiel zeigt, wie beim Erstellen einer neuen Regel in der Exchange-Verwaltungsshell reguläre Ausdrücke verwendet werden können:

So erstellen Sie eine Transportregel, die reguläre Ausdrücke zum Suchen nach Sozialversicherungsnummern im Betreff einer E-Mail-Nachricht verwendet

  1. Führen Sie die folgenden Befehle aus:

    $Condition = Get-TransportRulePredicate SubjectMatches
    $Condition.Patterns = @("\d\d\d-\d\d-\d\d\d\d")
    $Action = Get-TransportRuleAction RejectMessage
    $Action.RejectReason = "The transmission of Social Security Numbers is prohibited."
    New-TransportRule -Name "Social Security Number Block Rule" -Conditions $Condition -Actions $Action 
    
  2. Führen Sie den folgenden Befehl aus, um die neue Transportregel anzuzeigen:

    Get-TransportRule "Social Security Number Block Rule" | Format-List
    

Wenn dieser Get-TransportRule-Befehl ausgeführt wird, werden die folgenden Informationen angezeigt:

Identity           : Social Security Number Block Rule,753ed939-1227-4b2a-a8e0-ec49b0615f30
Name               : Social Security Number Block Rule
RuleCollectionName : Transport
Priority           : 0
Comments           :
ManuallyModified   : False
Conditions         : {SubjectMatches}
Exceptions         :
Actions            : {RejectMessage}
State              : Enabled
IsValid            : True
ObjectState        : Unchanged

Weitere Informationen

Ausführliche Informationen zu Syntax und Parametern für die einzelnen Befehle finden Sie unter den folgenden Themen:

Weitere Informationen zu Transportregeln finden Sie unter den folgenden Themen: