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