Что такое "Регулярное выражение"?
Регулярное выражение простыми словами - это шаблон, при помощи которого Telegram бот принимает введенные данные пользователем, если данные не соответствуют шаблону (регулярному выражению) - вопрос в модуле обратной связи со стороны клиента продолжает быть неотвеченным - бот не принимает данные.
Существуют готовые шаблоны проверки введенных данных:
- Проверка правильности ввода номера телефона
- Проверка правильности ввода эл. почты
- Проверка ссылок
В иных случаях вам необходимо самостоятельно составить регулярное выражение, разберемся как это сделать!
Основы составления регулярных выражений
1. Регулярное выражение или Reg Exp. состоит из различных символов, которые в свою очередь являются параметрами для настройки выражения.
Регулярное выражения ВСЕГДА помещается в /^регулярное выражение$/
, иной формат работать не будет!
Разберемся в основных метасимволах Reg Exp:
- ^
- начало строки, например, ^BOT - данное выражение будет соответствовать строкам, которые начинаются со слова "BOT"
- $
-
конец строки, например BOT$ - данное выражение будет соответствовать строкам, которые заканчиваются на слово "BOT"
- .
- любой символ, кроме новой строки
- *
- ноль или более повторений предыдущего символа
- +
- одно или более повторений предыдущего символа
- ?
- ноль или одно повторение предыдущего символа
- \d
- соответствует любой цифре от 0 до 9
- |
- по другому союз "ИЛИ", данное выражение - BOT|CODE - будет соответствовать строкам, в которых есть слова "BOT" или "CODE"
2. Если же необходимо проверять правильность ввода одного слова, вы можете использовать регулярное выражение, состоящие из простых привычных нам символам, например:
- Мы хотим, чтобы клиент в форме обратной связи написал слово "Черепашка", представим, что это слово пароль, после ввода которого модуль обратной связи продолжит работу по заданному сценарию.
- Для проверки ввода слова мы вставляем следующее регулярное выражение: /^Черепашка$/
, после ввода кодового слова - бот благополучно его примет и продолжит работу.
3. На скриншоте в предыдущем блоке вы могли увидеть регулярное выражение /^\d*?((0)|(2)|(4)|(6)|(8))$/
, оно соответствует проверке ввода четного числа, т.е. при вводе нечетного числа - бот сообщит об ошибке.
В данном Reg Exp. мы видим уже знакомые нам символы, где:
- Первая введенная цифра \d
должна соответствовать любой цифре от 0 до 9
- Символ *
означает ноль или более повторений
- Следующий метасимвол - ?
, означающий ноль или одно повторение предыдущего символа для избежания ошибок, если, например, мы захотим ввести число 88.
Наверное у вас возник вопрос "Зачем тогда *
и ?
стоят в одном выражении" - ответ прост, для случая ввода многозначных чисел, будь то 88 или 888
- Так же мы видим символ |
- означающий наличие в числе после первой и последующих цифрах 0 ИЛИ 2 ИЛИ 4 ИЛИ 6 ИЛИ 8 - это четные цифры, которые нам и необходимы!
- Почему цифры закрыты в скобках? Из базовых правил математики: четное или нечетное число определяется по последней стоящей цифре числа, данные цифры и метасимвол |
относятся к концу строки - метасимволу $
Вот мы и разобрались что же такое регулярные выражения и как правильно их составлять, в данной статье представлены не все метасимволы, для полноценного изучения регулярных выражений вам потребуется уделить некоторое время.
бесплатно и без знаний программирования BOT-T.COM