Регулярные выражения позволяют проверять соответствие строки указанному шаблону, или искать подстроку по шаблону в другой строке. Это достаточно сложный, но очень мощный механизм. С его помощью можно строить сложные условия на текст сообщения пользователя.
Примеры использования
Рассмотрим несколько примеров. В первом примере подробно описано как создать цепочку, все последующие делаются аналогично, отличается только код.
Цепочка, которая срабатывает на сообщения, которые содержат число
Код: %сообщение% | match(r'\d')
Обратите внимание, что в этой цепочке у нас 2 условия:
Условие на сообщение — это условие обязательное для всех цепочек, но так как в данном случае нам не с чем сравнивать строку, то можно просто сравнить его с самим собой.
Если вы используете регулярные выражение в условиях группы шагов (внутри блока), то это первое условие вам не нужно.
Сложное условие (SQ) — вот тут мы как раз и используем регулярное выражение. В данном случае регулярное выражение очень простое: \d. Оно обозначает, что в сообщении должна быть хотя бы одна цифра (d - digit). Символ r перед кавычками обозначает, что обратные слеши (\) в строке дальше следует воспринимать как обычные символы, а не как управляющие последовательности для перевода строки, возврата каретки и т.п. В общем лучше просто всегда ставьте его перед строкой с регулярным выражением.
Проверим работу цепочки:
Если вам нужно извлечь число из сообщения, чтобы сохранить его, например, в переменную, воспользуйтесь шагом Извлечь данные.
Цепочка, которая срабатывает, если в сообщении есть латинские буквы
Код: %сообщение% | lower | match('[a-z]')
Пояснение: lower меняет регистр сообщения на нижний (TeST -> test), [a-z] означает "любой символ, начиная с a и заканчивая z включительно). Вы можете указать любое другой набор символов, или даже несколько сразу:
[a-zа-я] — символ от a до z и от а до я
[abcdef] — один из указанных символов
Цепочка, которая срабатывает, если в сообщении есть ссылка
Код: %сообщение% | match(r'http(s)?://')
Пояснение: (s)? обозначает, что s не является обязательным.
Цепочка, которая срабатывает, если в сообщении есть номер телефона