Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Exchange Server 2013 г., Exchange Server 2016 г., Exchange Server 2019 г., Exchange Online
Регулярные выражения можно использовать в предикатах правил транспорта Microsoft Exchange Server 2013 для сопоставления текстовых шаблонов в разных частях сообщения (таких как заголовки сообщений, отправитель, получатели, тема сообщения и текст). Предикаты используются в условиях и ограничениях для определения возможности применения настроенного действия к сообщению электронной почты.
Примечание.
Из-за отклонений в клиентских средах службы поддержки майкрософт (CSS) не могут участвовать в разработке или тестировании пользовательских скриптов регулярных выражений ("скрипты регулярных выражений"). Для разработки, тестирования и отладки пользовательских скриптов RegEX Office 365 клиентам потребуется использовать внутренние ИТ-ресурсы. Пользователи Office 365 могут также обратиться во внешнюю консультационную службу, такую как Microsoft Consulting Services (MCS). Независимо от ресурса разработки скриптов инженеры службы поддержки CSS EXO и EOP не могут помочь клиентам с пользовательскими запросами к скриптам RegEx.
Ищете задачи управления, связанные с правилами транспорта? См. раздел Управление правилами транспорта.
Содержание
Содержание
- Простые и регулярные выражения
- Регулярные выражения в Exchange Server 2013 г.
- Создание правила транспорта, использующего регулярное выражение
Простые и регулярные выражения
Чтобы разобраться с регулярными выражениями, необходимо начать с простых. Простое выражение — это определенное значение, которое необходимо найти в сообщении. Предикаты с помощью простых выражений находят определенные слова или строки. Примером простого выражения является название документа, который ваша организация не хочет распространять за пределами организации, например Yearly Sales Forecast.doc. Фрагмент данных в сообщении электронной почты должен точно соответствовать простому выражению для удовлетворения условия или исключения в правилах транспорта.
Регулярное выражение — это лаконичная и гибкая запись, предназначенная для обнаружения шаблонных элементов текста в сообщении. Эта запись выполняется с использованием двух базовых типов символов:
- Литеральные символы: текст, который должен существовать в целевой строке. Эти символы являются обычными символами, как типизированные.
- Метачары: один или несколько специальных символов, которые не интерпретируются буквально. Эти символы указывают, как текст может отличаться в целевой строке.
Регулярные выражения можно использовать для быстрого анализа сообщений электронной почты для поиска определенных текстовых шаблонов. Эти выражения позволяют обнаруживать сообщения с определенными типами содержимого, например номерами социального страхования (SSN), номерами патентов и номерами телефонов.
Такие данные нельзя логично сопоставить с простым выражением, так как в простом выражении требуется вводить каждый вариант нужного значения. Во многих случаях использование простых выражений для таких приложений становится сложной задачей, и сопоставление большого количества простых выражений в содержимом сообщения может быть ресурсоемким. Использование регулярных выражений является более эффективным. Вместо указания всех возможных вариантов можно настроить предикат правила транспорта на поиск текстовых шаблонов.
Регулярные выражения в Exchange Server 2013 г.
В командной консоли Exchange можно использовать регулярные выражения в любом предикате, который принимает свойство предиката Patterns . В консоли управления Exchange можно использовать регулярные выражения с любым условием или исключением, содержащим слова с текстовыми шаблонами. Дополнительные сведения о предикатах см. в разделе Transport Rule Predicates.
Предупреждение
Необходимо тщательно протестировать создаваемые регулярные выражения, чтобы убедиться, что они дают ожидаемые результаты. Неправильное регулярное выражение может привести к неожиданным совпадениям и вызвать нежелательное поведение правила транспорта. Эти последствия могут привести к нежелательным действиям в отношении сообщений и содержимого сообщений, что может привести к потере данных при использовании таких действий, как отклонение или отказ сообщения. Кроме того, сложные регулярные выражения могут повлиять на производительность транспорта электронной почты. Регулярные выражения следует проверять в лабораторной среде до их внедрения в производство.
В следующей таблице перечислены строки шаблонов, которые можно использовать для создания регулярного выражения, соответствующего шаблону, в Exchange Server 2013:
Строка шаблона | Описание |
---|---|
\S | Строка шаблона \S соответствует любому единичному символу, который не является пробелом. |
\s | Строка шаблона \s соответствует единичному символу пробела. |
\D | Строка шаблона \D соответствует любой цифре, которая не является числом. |
\d | Строка шаблона \d соответствует любой одной цифре. |
\w | Строка шаблона \w соответствует любому символу Юникода, классифицированным как буква или десятичная цифра. |
\W | Строка шаблона \W соответствует любому символу Юникода, который не является буквой или цифрой. |
* | Звездочка (*) соответствует отсутствию предыдущего символа или одному либо нескольким его вхождениям. Например, ab*c соответствует следующим строкам: ac, abc и abbbbc. |
( ) | Скобки выступают в роли группирующего разделителя. Например, a(bc)* соответствует следующим строкам: a, abc, abcbc, abcbcbc и так далее. |
\ | Обратная косая черта используется в качестве escape-символа перед специальным символом. Специальные символы — это символы, используемые в строках шаблона: обратная косая черта ( \ ); Трубы; Звездочка ( * ); Открываемая скобка ( ( ); Закрывающая скобка ( ) ); Курсор ( ^ ); Знак доллара ( $ ). Например, если требуется сопоставить строку, содержащую (525), введите (525). |
^ | Символ «крышка» (^) указывает, что следующая за этим символом строка шаблона должна располагаться в начале сопоставляемой текстовой строки. Например, ^fred@contoso соответствует и fred@contoso.co.ukalfred@contoso.comне соответствует fred@contoso.com . |
$ | Символ символа $ доллара указывает, что предыдущая строка шаблона должна существовать в конце соответствующей текстовой строки. Например, contoso.com$ соответствует adam@contoso.com и kim@research.contoso.com, но не соответствует kim@contoso.com.au. |
Создание регулярных выражений
С помощью предыдущей таблицы можно создать регулярное выражение, которое соответствует нужному шаблону данных. В порядке следования слева направо изучите отдельные символы или группы символов в данных, которые нужно сопоставить. Прочтите описание каждой из строк шаблона, чтобы определить, как он будет применяться к сопоставляемым данным. Затем определите, какая строка из приведенных в таблице соответствует данному символу или группе символов, и добавьте ее в регулярное выражение. По завершении этой работы будет получено полностью готовое регулярное выражение.
Например, данное регулярное выражение соответствует телефонным номерам в Северной Америке в форматах 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\d: для этой части требуется, чтобы в первую очередь появились ровно три цифры.
- ((\s|.| -|)|) \s): для этой части требуется, чтобы после трехзначного числа существовал пробел, точка или дефис. Каждая строка сопоставления символов заключена в группирующие разделители и отделена вертикальной чертой. Это разделение означает, что в этом расположении в сопоставляемой строке может существовать только один из указанных символов внутри разделителей группирования. Для разделения между кодом области и следующими тремя цифрами он также ищет закрытую скобку или замкнутую скобку и пробел.
- \d\d\d\d: для этой части требуется, чтобы рядом отображалось ровно три числовые цифры.
- (\s|.| -): для этой части требуется, чтобы после трехзначного числа существовал пробел, точка или дефис.
- \d\d\d\d\d: для этой части требуется, чтобы рядом появились ровно четыре числовые цифры.
Выше регулярного выражения располагаются следующие примеры значений:
- (425)555.0100
- 425 555 0100
- 425 555 0100
- (425) 555-0100
- 425-555-0100
- (425) 555-0100
Создание правила транспорта, использующего регулярное выражение
В этом примере создается правило транспорта в PowerShell, которое использует регулярные выражения для сопоставления имен SSN в теме сообщения электронной почты.
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