IVA ДОКУМЕНТАЦИЯ ОБНОВЛЕНИЯ

Шаблоны и подстановочные знаки

Назначение

Раздел описывает механизм использования шаблонов и подстановочных знаков, который применяется в системе IVA Mail для:

  • сопоставления адресов и доменов;

  • фильтрации сообщений;

  • настройки маршрутизации;

  • задания списков адресов.

Шаблоны могут использоваться в следующих механизмах:


Общий принцип

Шаблон — это строка, содержащая специальные символы, которые позволяют задать набор значений вместо одного точного совпадения.

Шаблоны используются:

  • для сопоставления адресов электронной почты;

  • для проверки доменов;

  • для фильтрации строковых значений.


Подстановочные знаки

Подстановочные знаки используются в шаблонах для поиска и преобразования значений.

Поддерживаются следующие конструкции:

Конструкция Описание Пример

?

Ровно один любой символ.

user?@example.org

*

Любое количество любых символов, включая пустую строку.

*@example.org

[abc]

Один символ из перечисленных.

user[123]@example.org

[0-9]

Один символ из диапазона, включая первое и последнее число диапазона.

user[0-9]@example.org

{m,n}

Повторение предыдущей подстановки от m до n раз.

user[0-9]{2,4}@example.org

\N

Ссылка на значение, найденное N-й подстановкой. Используется в строке замены.

1@new-domain.org

\\

Буквальный символ обратной косой черты.

\\

\

Буквальный пробел в строке замены.

user\ name


Символ "?"

Символ ? соответствует ровно одному любому символу.

Пример:

user?@example.org

Соответствует:

user1@example.org
userA@example.org

Не соответствует:

user12@example.org
user@example.org

Символ "*"

Символ * соответствует любой последовательности любых символов, включая пустую строку.

Пример:

*@example.org

Соответствует:

user@example.org
admin@example.org
support@example.org

Квадратные скобки []

Квадратные скобки [] используются для указания одного символа из перечисления или диапазона.

Пример перечисления:

user[123]@example.org

Соответствует:

user1@example.org
user2@example.org
user3@example.org

Не соответствует:

user4@example.org

Пример диапазона:

user[0-9]@example.org

Соответствует любому адресу от:

user0@example.org

до:

user9@example.org

Символы внутри квадратных скобок

Символы внутри [] сравниваются буквально, включая:

? * { } [ ]
Символ `] `в перечислении должен быть указан первым.

Например, чтобы найти буквальный символ *, используйте:

[*]

Чтобы найти буквальный символ [, используйте:

[[]

Если символ "-" должен восприниматься как обычный символ, а не как диапазон, укажите его первым или последним:

[-az]
[a-z-]

Фигурные скобки {m,n}

Фигурные скобки {} задают количество повторений предыдущей подстановки.

Они могут использоваться после ?; *; [].

Общий вид:

{m,n}

где:

  • m — минимальное количество повторений;

  • n — максимальное количество повторений.

Примеры:

Шаблон Описание

?{2,4}

От 2 до 4 любых символов.

[0-9]{3}

Три цифры.

[a-z]{1,}

Одна или более строчных букв.

{0,1}

Ноль или одно повторение произвольной последовательности.

В конструкции {m,n} одно из значений может отсутствовать. Например, {2,} означает минимум два повторения.

Комбинации "?" и "*"

Комбинации подстановок объединяются в одно выражение.

Примеры:

Шаблон Описание

??

Ровно два любых символа.

?*

Минимум один символ.

*?

Минимум один символ.


Захваченные значения и подстановка \N

Каждая подстановка после успешного совпадения сохраняет найденное значение.

В строке замены можно сослаться на найденное значение с помощью:

\N

где N — номер подстановки от 1 до 9.

Пример:

<*@old.example.org> = \1@new.example.org

Если исходный адрес:

ivan@old.example.org

то результат:

ivan@new.example.org

Экранирование обратной косой черты и пробела

Для вставки буквального символа \ используйте:

\\

Для вставки пробела в строке замены используйте:

\

Использование шаблонов в таблицах маршрутизатора

В таблицах маршрутизатора инструкция записывается в виде:

pattern = replacement

Шаблоны бывают двух типов:

Тип шаблона Описание

<pattern> = replacement

Шаблон применяется к полному адресу.

pattern = replacement

Шаблон применяется только к доменному имени.

Пример шаблона для полного адреса:

<*@old.example.org> = \1@new.example.org

Пример шаблона для домена:

old.example.org = new.example.org
Если правило должно применяться ко всему адресу, используйте уголковые скобки. Если уголковые скобки не указаны, шаблон применяется только к доменной части.