Возможности регулярных выражений
Регулярные выражения — это специальные текстовые шаблоны, которые используются для поиска и сопоставления определенных строк символов в тексте.
Поддержка регулярных выражений в фильтрах и заменах в нашем сервисе позволяет:
- Добавлять в начало или в конец сообщений любой текст.
- Фильтровать сообщения с любыми ссылками.
- Удалять ссылки, телефоны, почту и прочую контактную информацию из копируемых сообщений.
- Фильтровать длинные сообщения или наоборот только короткие.
Для активации синтаксиса регулярных выражений необходимо активировать соответствующую опцию в диалоге настройки фильтра или замены.
Синтаксис регулярок
Чтобы начать использовать регулярные выражения, нужно знать синтаксис, т.е. понимать, что обозначают определенные символы.
Основные символы
^
- начало текста$
- конец текста.
- любой символ\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.