Примеры регулярных выражений
При составлении фильтров и модификаций адресов используются регулярные выражения (RegExp). Ниже приведены:
-
Примеры выражений фильтров и модификаций
-
Примеры преобразования адресов
-
Синтаксис регулярных выражений
Примеры выражений фильтров и модификаций
RegExp | Пример адреса | Примечание |
---|---|---|
|
sip:test@domain1.ru |
sip:<N>@domain1.ru |
|
sip:+74951234567@domain1.ru |
sip:+<N>@<N> |
|
sip:+74951234567@10.0.0.10 H.323:test@domain1.ru |
sip:<N>@<N> H.323:<N>@<N> |
|
sip:1010@10.0.0.10 |
sip:<N>@10.0.0.10 |
|
sip:test@mydomain.com |
<N>@mydomain.<N> |
|
sip:user@10.0.0.10:11100 |
<N>@10.0.0.10:XXXXX (где XXXXX — номер порта, состоящий из 5 цифр) |
где <N> — изменяемое значение, содержащее любое произвольное количество символов.
Примеры преобразования адресов
-
пример 1:
Пример | Примечание |
---|---|
Фильтр адреса TO |
|
|
sip:000XXXX@<N>.com где <N> — любое произвольное количество символов |
Модификация адреса TO |
|
где:
|
sip:XXXX@<N>.ru |
Фильтр адреса TO ^sip:000([0-9]{3,5})@(.*).com$
ищет номера формата sip:000XXXX@<N>.com, где после sip:000 идут любые цифры в количестве от 3 до 5 символов, а <N> — любое произвольное количество символов.
Модификация адреса TO sip:$1@$2.ru
преобразует найденный номер в номер формата sip:XXXX@<N>.ru.
-
пример 2:
Пример | Примечание |
---|---|
Фильтр адреса TO |
|
где <HOST_NAME> — название вызываемого физического / виртуального хоста |
sip:000XXXXXXXX@<HOST_NAME> |
Модификация адреса TO |
|
где:
|
sip:XXXXXXXX@<SERVER_IP> |
Фильтр адреса TO ^sip:000([0-9]\{7,8})@<HOST_NAME>$
ищет номера формата sip:000XXXXXXXX@<HOST_NAME>, где после sip:000 идут любые цифры в количестве от 7 до 8 символов, а <HOST_NAME> — название вызываемого физического / виртуального хоста.
Модификация адреса TO sip:$1@<SERVER_IP>
преобразует найденный номер в номер формата sip:XXXXXXXX@<SERVER_IP>, где <SERVER_IP> — вызываемый IP-адрес физического / виртуального сервера.
Синтаксис регулярных выражений
Синтаксис регулярных выражений основан на использовании символов <([\{\^-=$!|]})?*+.>
, которые можно комбинировать с цифровыми и буквенными символами.
В зависимости от роли символы можно разделить на несколько групп:
-
метасимволы для обозначения количества символов (квантификаторы), квантификатор всегда следует после символа или группы символов
Метасимволы для поиска совпадений границ строк или текста:
Метасимвол | Назначение |
---|---|
|
начало строки |
|
конец строки |
|
граница слова |
|
не граница слова |
|
начало ввода |
|
конец предыдущего совпадения |
|
конец ввода |
|
конец ввода |
Метасимволы для поиска символьных классов:
Метасимвол | Назначение |
---|---|
|
цифровой символ |
|
нецифровой символ |
|
символ пробела |
|
непробельный символ |
|
буквенно-цифровой символ или знак подчёркивания |
|
любой символ, кроме буквенного, цифрового или знака подчёркивания |
|
любой символ |
Метасимволы для поиска символов редактирования текста:
Метасимвол | Назначение |
---|---|
|
символ табуляции |
|
символ новой строки |
|
символ возврата каретки |
|
переход на новую страницу |
|
символ следующей строки |
|
символ разделения строк |
|
символ разделения абзацев |
Метасимволы для группировки символов:
Метасимвол | Назначение |
---|---|
|
любой из перечисленных (а, б, или в) |
|
любой, кроме перечисленных (не а, б, в) |
|
слияние диапазонов (латинские символы от a до z без учёта регистра) |
|
объединение символов (от a до d и от m до p) |
|
пересечение символов (символы d, e, f) |
|
вычитание символов (символы a, d-z) |