В этом разделе рассматривается внедрение регулярных выражений, которые могут использоваться с предикатами правил транспорта. Предикаты используются в условиях и ограничениях для определения возможности применения настроенного действия или действий к сообщению электронной почты.
Дополнительные сведения о правилах транспорта см. в разделе Обзор правил транспорта.
Определение регулярных выражений
В первую очередь необходимо уяснить, что представляет собой простое выражение. Простое выражение отражает конкретное выражение, которое нужно соответствует условию или исключению. Пример простого выражения — заголовок документа, который нельзя распространять за пределами организации. Данные в сообщении электронной почты должны точно совпадать с простым выражением, чтобы они отвечали условию или исключению в правилах транспорта.
Регулярное выражение — это лаконичная и гибкая запись, предназначенная для обнаружения шаблонных элементов текста в сообщении. Эта запись выполняется с использованием двух базовых типов символов: литералов (обычных текстовых символов), обозначающих текст, который должен присутствовать в целевой строке, а также метасимволов, управляющие вариациями текста в целевой строке. С помощью регулярных выражений можно быстро разбирать сообщения электронной почты и искать определенные шаблонные элементы текста.
Возможность поиска шаблонных элементов текста в сообщении электронной почты позволяет сопоставлять предикаты с данными в сообщениях, которые могут динамически меняться. Примеры таких данных — номера социального страхования и номера патентов. Такие данные нельзя логично сопоставить с простым выражением, так как в простом выражении требуется вводить каждый вариант нужного значения. С использованием регулярных выражений можно настроить предикат для поиска в сообщении шаблонных номеров социального страхования или номеров патентов.
Регулярные выражения можно использовать в любом предикате правила условия или исключения, кроме предиката «это отчет о доставке». Дополнительные сведения о том, какие предикаты допускают применение регулярных выражений с шаблонами, см. в разделе Предикаты правил транспорта.
Внедрение регулярных выражений
В среде управления Exchange можно использовать
регулярные выражения в любом предикате, который принимает свойство
предиката Patterns
. В консоли управления Exchange
можно использовать регулярные выражения с любым условием или
исключением, которое содержит слова с шаблонами текста. В
табл. 1 перечисляются все строки шаблонов, которые можно
использовать для создания регулярного выражения с шаблонами.
Внимание! |
---|
Необходимо тщательно проверять созданные регулярные выражения, чтобы убедиться, что их применение даст ожидаемый результат. Неправильное регулярное выражение может привести к неожиданным совпадениям и вызвать нежелательное поведение правила транспорта. Регулярные выражения следует проверять в лабораторной среде до их внедрения в производство. |
Таблица 1. Строки шаблонов
Строка шаблона | Описание |
---|---|
|
Строка шаблона |
|
Строка шаблона |
|
Строка шаблона |
|
Строка шаблона |
|
Строка шаблона |
|
Вертикальная черта ( |
|
Подстановочный знак ( |
|
Скобки выступают в роли группирующего разделителя. Например,
|
|
Обратная косая черта (\) является escape-символом, который используется вместе со специальным символом. Специальные символы — это приведенные ниже символы, которые используются в строках шаблона.
Например, если нужно найти строку, которая содержит (525), следует указать \(525\). |
|
Если нужно, чтобы символ обратной косой черты распознавался как
таковой, а не как escape-символ, следует ввести две косые черты.
Например, если нужно найти строку, которая содержит
|
|
Символ «крышка» ( Этот символ может использоваться также в сочетании с символом
доллара ( |
|
Символ доллара ( Этот символ также может использоваться в сочетании с символом
«крышка» ( |
С помощью табл. 1 можно создать регулярное выражение, которое соответствует нужному шаблону данных. В порядке следования слева направо изучите отдельные символы или группы символов в данных, которые нужно сопоставить. Прочтите описание каждой из строк шаблона, чтобы определить, как он будет применяться к сопоставляемым данным. Затем определите, какая строка из приведенных в табл. 1 соответствует данному символу или группе символов, и добавьте ее в регулярное выражение. По завершению этой работы будет получено полностью готовое регулярное выражение.
Например, следующее регулярное выражение соответствует телефонным номерам в Северной Америке в форматах 425 555-0100 и 425.555.0100:
Копировать код | |
---|---|
425(\s|.)\d\d\d(-|.)\d\d\d\d |
Можно развернуть этот пример, добавив формат телефонного номера (425) 555-0100, в котором код региона заключен в скобки. Следующее регулярное выражение соответствует всем трем форматам телефонных номеров:
Копировать код | |
---|---|
(\\()*\d\d\d(\\)|\s|.)\d\d\d(-|.)\d\d\d\d |
Разберем приведенный выше пример:
- (\\()* — эта часть строки делает первую скобку
необязательной. Поскольку закрывающая скобка также является
разделителем регулярного выражения, ее следует пропустить; для
этого служит двойная обратная косая черта
\\
. Группа скобок (()
) группирует символы\\(
, поэтому подстановочный знак*
может действовать в отношении символов\\(
, делая их необязательными.
- \d\d\d — эта часть строки соответствует трем
цифрам, которые должны следовать в строке.
- (\\)|\s|.) — эта часть строки указывает на то, что
за последовательностью из трех чисел должны следовать открывающая
скобка, пробел или точка. Каждая строка сопоставления символов
заключена в группирующие разделители и отделена вертикальной
чертой. Это означает, что в образованной разделителями группе в
данном месте сопоставляемой строки может находиться только один из
указанных символов.
- \d\d\d — эта часть строки соответствует трем
цифрам, которые должны следовать в строке.
- (-|.) — эта часть строки требует наличия
дефиса или точки после трех цифр. Так как дефис и точка заключены в
группирующие разделители, в указанном месте сопоставляемой строки
может стоять только один из этих двух символов.
- \d\d\d\d — эта часть строки требует наличия
четырех цифр.
Пример правила транспорта, в котором используется регулярное выражение
В следующем примере демонстрируется, как использовать регулярные выражения при создании нового правила в среде управления Exchange:
Чтобы создать правило транспорта, в котором используются регулярные выражения для сопоставления с номерами социального страхования в теме сообщения электронной почты-
Выполните следующие команды:
Копировать код $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
-
Выполните следующую команду, чтобы просмотреть новое правило транспорта:
Копировать код Get-TransportRule "Social Security Number Block Rule" | Format-List
При выполнении команды Get-TransportRule отображаются следующие сведения:
Копировать код | |
---|---|
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 |
Дополнительные сведения
Дополнительные сведения о синтаксисе и параметрах каждой из команд см. в следующих разделах:
Дополнительные сведения о правилах транспорта см. в следующих разделах: