wiki:Mc04regexp

Version 5 (modified by san, 5 years ago) ( diff )

Добавил два примера, добавил картинки работы с калькулятором

Вики MC04

Регулярные выражения

В плате VE-01 в качестве шаблонов номеров применяются perl-совместимые регулярные выражения (PCRE). Регулярные выражения (англ. regular expressions) - это широко используемый способ описания шаблонов для поиска текста и проверки соответствия текста шаблону. Регулярные выражения - формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. Для поиска используется строка-образец (шаблон), состоящая из символов и метасимволов и задающая правило поиска.

В плате VE-01 регулярные выражения применяются в следующих настройках:

  • Настройка "Рег. выражение вызова". Настройка коммутации вызовов в данное окончание. При обслуживаниии вызова, после проверки совпадений вызываемого номера с номерами канальных окончаний, если совпадений обнаружено не было, выполняется второй проход, на котором к номеру(username) вызываемого абонента применяется регулярное выражение. Вызов будет передан для обслуживания первому незанятому канальному окончанию, у которого задано регулярное выражение вызова, под которое подпадает вызываемый номер.
  • Настройка "Рег. выражение набора/номера" - окончаний FxS, 1ИНД, АДАСЭ, R2. Настройка "быстрого набора" номеров без ожидания таймаута. Номер, набираемый абонентом соответствующего окончания проверяется на совпадение с регулярным выражением указанным в настройке. При совпадении с регулярным выражением немедленно отправляется вызов в IP-сеть без ожидания таймаута набора.
  • Функция "Маршрутизация SIP" Перенаправление вызовов. Каждый маршрут состоит из двух основных частей - регулярного выражения, на совпадение с которым проверяется цель (target) запроса SIP, и строки, которой заменяется цель в случае совпадения.

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

  • . - любой 1 символ (при задании такого выражения в качестве "Рег. выражение вызова", окончание будет принимать любые вызовы);
  • .{4} - 4 любых символа, например 123#;
  • ^5 - номер начинается с пятёрки;
  • ^537 - номер начинается с 537;
  • ^537$ - только номер 537;
  • ^2\d{6}$ - номер длиной 7 цифр и начинается с цифры 2, например 2123456;
  • ^2\d{6} - номер длиной не менее 7 цифр и начинается с цифры 2, например 2123456#789;
  • ^[2,3,5]\d{2} - номер начинается с одной из цифр 2, 3 или 5, затем две любые цифры, например 374;
  • ^[^6,8] - номер начинается с любой цифры кроме 6 или 8;
  • ^(?![3,4]0\d{2})\d* - принимает все вызовы кроме номеров начинающихся на 30хх, 40хх;
  • ^[3,4]0\d{2}$ - принимает вызовы только на номера вида 30хх, 40хx;
  • ^8(?!10)\d{10}$ - междугородние номера длиной 11 цифр, начинающиеся с 8, исключая международные, начинающиеся с 810;
  • ^+?7\d{10} - в начале номера необязательный символ +, затем цифра 7, затем 10 любых цифр +73422241205 или 73422241205;
  • (^7\d{4})|(^6\d{2}) - 5 цифр начинающиеся с 7 или 3 цифры начинающиеся с 6, например 71234, 612;
  • /^2(\d{6})/83422\1 - регулярное выражение с заменой: номер из 7 цифр, начинающийся с цифры 2, после совпадения к номеру добавляется префикс '8342'. Т.е. если в окончании FxS задать такое выражение в качестве "Рег. выражение номера", то при наборе абонентом на телефоне номера 2241205 вызов будет отправлен на номер 83422241205;

Познакомиться подробней с регулярными выражениями можно по следующим ссылкам:



Вики MC04

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.