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.
Achtung: |
---|
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 |
---|---|
|
Die Musterzeichenfolge |
|
Die Musterzeichenfolge |
|
Die Musterzeichenfolge |
|
Die Musterzeichenfolge |
|
Die Musterzeichenfolge |
|
Der senkrechte Strich ( |
|
Das Sternchen oder Platzhalterzeichen ( |
|
Runde Klammern fungieren als Gruppentrennzeichen. |
|
Der umgekehrte Schrägstrich (\) ist das Escapezeichen, das zusammen mit einem Sonderzeichen verwendet wird. Die folgenden Zeichen werden als Sonderzeichen in Musterzeichenfolgen verwendet:
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 |
|
Das Zirkumflexzeichen ( Dieses Zeichen kann auch zusammen mit dem Dollarzeichen ( |
|
Das Dollarzeichen ( Dieses Zeichen kann auch zusammen mit dem Zirkumflexzeichen ( |
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
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
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: