Возможности регулярных выражений

Регулярные выражения — это специальные текстовые шаблоны, которые используются для поиска и сопоставления определенных строк символов в тексте. 

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

  • Добавлять в начало или в конец сообщений любой текст.
  • Фильтровать сообщения с любыми ссылками.
  • Удалять ссылки, телефоны, почту и прочую контактную информацию из копируемых сообщений.
  • Фильтровать длинные сообщения или наоборот только короткие. 

Для активации синтаксиса регулярных выражений необходимо активировать соответствующую опцию в диалоге настройки фильтра или замены.

Синтаксис регулярок

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

 

Основные символы

  • ^ - начало текста
  • $ - конец текста
  • . - любой символ
  • \d - любая цифра
  • \w - любой словестный символ (кириллица, латиница, числа, "_" и т.д.)
  • \n - символ переноса строки (новая строка)
  • \t - символ табуляции
  • \s - все пробельные символы

 

Количественные символы

Количественные символы указывают на количество символов или групп стоящих перед ними.

  • * - 0 и более раз
  • + - 1 и более раз
  • ? - 0 или 1 раз
  • {5} - ровно 5 раз
  • {1,5} - от 1 до 5 раз
  • {1,} - от 1 раза
  • {,5} - до 5 раз

Например:

  • a+ - соответсвует а, aa, aaa и т.д.
  • .* - соответствует любому тексту, даже пустому;
  • аб{3} - аббб

 

Группы

Круглые скобки ( ) - позволяют объединить символы в группу. Группы чаще всего используют с количественными символами из предыдущего раздела, либо с символом вертикальной черты которая обозначает логическое ИЛИ.

Например:

  • ((Bob)|(Alice)) - соответствует строкам как Bob, так и Alice;
  • (abc){3} - соответствует abcabcabc;

 

Набор символов

Для указания набора символов используются квадратные скобки [ ], внутри них можно перечислить символы следующие образом:

  • [а-я] - любой символ кириллицы
  • [абвгд] - любой символ а,б,в,г или д (тоже самое что и [а-д])
  • [а-z] - любой символ латиницы
  • [0-5] - любая цифра от 1 до 5

Внутри квадратных скобок символ ^ означает логическое НЕ (символ отрицания):

  • [^а-я] - любой символ, КРОМЕ символа кириллицы
  • [а-z] - любой символ, КРОМЕ символа латиницы
  • [^\s] - любой НЕ пробельный символ

 

Экранирование символов

Если требуется использовать служебный символ просто как текст, а не как часть синтаксиса регулярного выражения, то его необходимо экранировать с помощью обратного слеша \ .

Например:

  • :\) - соответствует строке :)  (скобка обозначает не группу, а просто скобку);
  • кто\? - соответствует строке кто? (знак вопроса в данном случае является не количественным символом, а просто знаком вопроса)

Готовые шаблоны

Ниже представлены готовые шаблоны регулярных выражений которые вы можете скопировать и использовать для своих задач:

  • Любой telegram юзернейм - @[a-z0-9_]{4,}

  • Любая ссылка - https?:\/\/[^\s]*

Позже список будет расширяться, для добавления новых пишите в поддержку @value_maker.

Для тестирования собственных регулярок используйте сайт regexp.com.