Что такое "Регулярное выражение"?

Что такое "Регулярное выражение"?Регулярное выражение простыми словами - это шаблон, при помощи которого 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