Reguläre Ausdrücke in Transportregeln

 

Gilt für: Exchange Server 2010 SP2, Exchange Server 2010 SP3

Letztes Änderungsdatum des Themas: 2016-03-18

In MicrosoftExchange Server 2010-Transportregelprädikaten können Sie reguläre Ausdrücke verwenden, um Textmuster in unterschiedlichen Teilen einer Nachricht (z. B. Nachrichtenkopfzeilen, Absender, Empfänger, Betreff und Nachrichtentext) abzugleichen. Anhand von Prädikaten wird in Bedingungen und Ausnahmen bestimmt, ob eine konfigurierte Aktion auf eine E-Mail-Nachricht angewendet werden soll.

Hinweis

Aufgrund der unterschiedlichen Kundenumgebungen kann Microsoft Customer Support Services (CSS) nicht an der Entwicklung oder an Tests benutzerdefinierter Regular Expression-Skripts (RegEx-Skripts) teilnehmen. Die Entwicklung, Tests und das Debuggen benutzerdefinierter RegEx-Skripts muss für Office 365-Kunden von der internen IT-Abteilung übernommen werden. Alternativ können Office 365-Kunden einen externen Beratungsservice wie z. B. Microsoft Consulting Services (MCS) nutzen. Unabhängig davon, wo das Skript entwickelt wurde, können CSS EXO- und EOP-Supporttechniker nicht für Anfragen bezüglich benutzerdefinierter RegEx-Skripts zur Verfügung stehen.

Möchten Sie wissen, welche anderen Verwaltungsaufgaben es im Zusammenhang mit Transportregeln gibt? Informationen finden Sie unter Verwalten von Transportregeln.

Inhalt

Einfache Ausdrücke im Vgl. zu Regulären Ausdrücken

Reguläre Ausdrücke in Exchange 2010

Erstellen einer Transportregel, die einen regulären Ausdruck verwendet

Einfache Ausdrücke im Vgl. zu Regulären Ausdrücken

Um reguläre Ausdrücke zu verstehen, müssen Sie zuerst einfache Ausdrücke verstehen. Ein einfacher Ausdruck stellt einen bestimmten Wert dar, für den in einer Nachricht eine genaue Entsprechung gefunden werden soll. Prädikate mit einfachen Ausdrücken entsprechen bestimmten Wörtern oder Zeichenfolgen. Ein Beispiel für einen einfachen Ausdruck ist der Titel eines Dokuments, das ein Unternehmen nur intern verwendet und das nicht für den externen Gebrauch bestimmt ist, wie z. B. „Jährliche Umsatzprognose.doc“. 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 Zeichentypen:

  • Zeichenliteral   Text, der in der Zielzeichenfolge vorhanden sein muss. Dies sind normale Zeichen (wie eingegeben).

  • Metazeichen   Mindestens ein Sonderzeichen, das nicht wörtlich interpretiert wird. Diese geben an, wie der Text in der Zielzeichenfolge variieren kann.

Sie können reguläre Ausdrücke verwenden, um E-Mail-Nachrichten schnell zu analysieren und nach bestimmten Textmustern zu suchen. Auf diese Weise können Sie Nachrichten mit bestimmten Inhaltsarten, wie z. B. Sozialversicherungsnummern, Patentnummern und Telefonnummern, erkennen.

Sie können diese Daten nicht mit vertretbarem Aufwand durch einen einfachen Ausdruck ermitteln, weil der einfache Ausdruck voraussetzt, dass Sie jede denkbare Variante des zu suchenden Werts eingeben. In vielen Fällen ist die Verwendung einfacher Ausdrücke für derartige Anwendungen eine logistische Herausforderung und der Abgleich einer Vielzahl einfacher Ausdrücke in Nachrichteninhalten ein ressourcenintensiver Vorgang. Die Verwendung von regulären Ausdrücken ist im Allgemeinen effizienter. Statt alle denkbaren Varianten anzugeben, konfigurieren Sie das Transportregelprädikat so, dass nach einem Textmuster gesucht wird.

Reguläre Ausdrücke in Exchange 2010

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. Weitere Informationen zu Prädikaten finden Sie unter Transportregelprädikate.

VorsichtAchtung:
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. Daraus können sich unerwünschte Aktionen für Nachrichten und Nachrichteninhalte ergeben, die möglicherweise zu einem Datenverlust führen, wenn z. B. Nachrichten abgelehnt werden oder zurückgehen. Darüber hinaus können komplexe reguläre Ausdrücke die E-Mail-Transportleistung beeinträchtigen. Testen Sie Ihre regulären Ausdrücke in einer Testumgebung, bevor Sie sie in der Produktionsumgebung implementieren.

In der folgenden Tabelle werden alle Musterzeichenfolgen aufgelistet, die in Exchange 2010 zum Erstellen eines Musterabgleichs durch reguläre Ausdrücke verwendet werden können.

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.

\W

Die Musterzeichenfolge \W entspricht einem beliebigen einzelnen Unicode-Zeichen, das nicht der Kategorie „Buchstabe“ oder „Dezimalzahl“ zugeordnet ist.

|

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

*

Das Sternchen (*) 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.

\

Ein umgekehrter Schrägstrich wird als Escapezeichen vor einem Sonderzeichen verwendet. Sonderzeichen sind Zeichen, die in Musterzeichenfolgen verwendet werden:

  • Umgekehrter Schrägstrich ( \ )

  • Senkrechter Strich ( | )

  • Sternchen ( * )

  • Runde Klammer links ( ( )

  • Runde Klammer rechts ( ) )

  • Caretzeichen ( ^ )

  • Dollarzeichen ( $ )

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

^

Das Caretzeichen ( ^ ) gibt an, dass die auf das Caretzeichen folgende Musterzeichenfolge am Beginn der zu suchenden Textzeichenfolge vorhanden sein muss.

^fred@contoso entspricht z. B. fred@contoso.com und fred@contoso.co.uk, nicht jedoch alfred@contoso.com.

$

Das Dollarzeichen ( $ ) gibt an, dass die vorhergehende 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.

Erstellen von regulären Ausdrücken

Mithilfe der vorherigen Tabelle können Sie einen regulären Ausdruck erstellen, der nach übereinstimmenden Datenmustern sucht. 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 der Tabelle dieses Zeichen oder die Zeichengruppe darstellt, und fügen Sie dem regulären Ausdruck diese Zeichenfolge hinzu. Anschließend haben Sie einen vollständig erstellten regulären Ausdruck.

Das folgende Beispiel für einen regulären Ausdruck entspricht z. B. dem nordamerikanischen Rufnummernformat 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. Dieses Beispiel für einen regulären Ausdruck entspricht allen drei Telefonnummernformaten.

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

Sie können die vorherigen Beispiele wie folgt analysieren:

  • \d\d\d   Diese Angabe verlangt am Anfang genau drei Ziffern.

  • ((\s|.|-|\)|\)\s)   Diese Angabe verlangt, dass ein Leerzeichen, ein Punkt oder ein Bindestrich auf die dreistellige Zahl folgt. 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 gesuchten Zeichenfolge vorhanden sein darf. Als Trennung zwischen Ortsnetzkennzahl und den nächsten drei Zahlen wird auch nach einer schließenden Klammer oder einer schließenden Klammer mit Leerzeichen gesucht.

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

  • (\s|.|-)   Diese Angabe verlangt, dass ein Leerzeichen, ein Punkt oder ein Bindestrich auf die dreistellige Zahl folgt.

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

Der reguläre Ausdruck oben stimmt mit den folgenden Beispielwerten überein:

  • (425)555.0100

  • 425 555 0100

  • 425. 555-0100

  • (425) 555-0100

  • 425-555-0100

  • (425) 555-0100

Erstellen einer Transportregel, die einen regulären Ausdruck verwendet

In diesem Beispiel erstellen Sie in der Shell eine Transportregel, die reguläre Ausdrücke zum Suchen nach Sozialversicherungsnummern im Betreff einer E-Mail-Nachricht verwendet.

New-TransportRule -Name "Social Security Number Block Rule" -SubjectOrBodyMatchesPatterns '\d\d\d-\d\d-\d\d\d\d' -RejectMessageEnhancedStatusCode "5.7.1" -RejectMessageReasonText "This message has been rejected because of content restrictions" 

In diesem Beispiel können Sie die neue Transportregel anzeigen.

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

 © 2010 Microsoft Corporation. Alle Rechte vorbehalten.