Примеры регулярных выражений

При составлении фильтров и модификаций адресов используются регулярные выражения (RegExp). Ниже приведены:

  • Примеры выражений фильтров и модификаций

  • Примеры преобразования адресов

  • Синтаксис регулярных выражений

Примеры выражений фильтров и модификаций

RegExp Пример адреса Примечание

^sip:(.*)@domain1.ru$

sip:test@domain1.ru

sip:<N>@domain1.ru

^sip:\+(.*)@(.*)

sip:+74951234567@domain1.ru

sip:+<N>@<N>

^sip:|H.323:(.*)@(.*)

sip:+74951234567@10.0.0.10

H.323:test@domain1.ru

sip:<N>@<N>

H.323:<N>@<N>

sip:(.*)@10\.0\.0\.10$

sip:1010@10.0.0.10

sip:<N>@10.0.0.10

(.*)@mydomain\.(.*)

sip:test@mydomain.com

<N>@mydomain.<N>

(.*)@10\.0\.0\.10:[0-9]{5}$

sip:user@10.0.0.10:11100

<N>@10.0.0.10:XXXXX

(где XXXXX — номер порта, состоящий из 5 цифр)

где <N> — изменяемое значение, содержащее любое произвольное количество символов.

Примеры преобразования адресов

  • пример 1:

Пример Примечание

Фильтр адреса TO

^sip:000([0-9]{3,5})@(.*).com$

sip:000XXXX@<N>.com

где <N> — любое произвольное количество символов

Модификация адреса TO

sip:$1@$2.ru

где:

  • строка замены $1 — переменная, которой в данном случае является первое заключенное в скобках выражение ([0-9]\{3,5})

  • строка замены $2 — переменная, которой в данном случае является второе заключенное в скобках выражение (.*)

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

^sip:000([0-9]{7,8})@<HOST_NAME>$

где <HOST_NAME> — название вызываемого физического / виртуального хоста

sip:000XXXXXXXX@<HOST_NAME>

Модификация адреса TO

sip:$1@<SERVER_IP>

где:

  • строка замены $1 — переменная, которой, в данном случае, является заключенное в скобках выражение ([0-9]{7,8})

  • <SERVER_IP> — вызываемый IP-адрес физического / виртуального сервера

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-адрес физического / виртуального сервера.

Синтаксис регулярных выражений

Синтаксис регулярных выражений основан на использовании символов <([\{\^-=$!|]})?*+.>, которые можно комбинировать с цифровыми и буквенными символами.

В зависимости от роли символы можно разделить на несколько групп:

Метасимволы для поиска совпадений границ строк или текста:

Метасимвол Назначение

^

начало строки

$

конец строки

\b

граница слова

\B

не граница слова

\A

начало ввода

\G

конец предыдущего совпадения

\Z

конец ввода

\z

конец ввода

Метасимволы для поиска символьных классов:

Метасимвол Назначение

\d

цифровой символ

\D

нецифровой символ

\s

символ пробела

\S

непробельный символ

\w

буквенно-цифровой символ или знак подчёркивания

\W

любой символ, кроме буквенного, цифрового или знака подчёркивания

.

любой символ

Метасимволы для поиска символов редактирования текста:

Метасимвол Назначение

\t

символ табуляции

\n

символ новой строки

\r

символ возврата каретки

\f

переход на новую страницу

\u 0085

символ следующей строки

\u 2028

символ разделения строк

\u 2029

символ разделения абзацев

Метасимволы для группировки символов:

Метасимвол Назначение

[абв]

любой из перечисленных (а, б, или в)

[^абв]

любой, кроме перечисленных (не а, б, в)

[a-zA-Z]

слияние диапазонов (латинские символы от a до z без учёта регистра)

[a-d[m-p]]

объединение символов (от a до d и от m до p)

[a-z&&[def]]

пересечение символов (символы d, e, f)

[a-z&&[^bc]]

вычитание символов (символы a, d-z)

Метасимволы для обозначения количества символов (квантификаторы):

Метасимвол Назначение

?

один или отсутствует

*

ноль или более

+

один или более

\{n}

n

\{n,}

n и более

\{n,m}

не менее n и не более m