Table of contents

Регулярные выражения в конструкторе сценариев

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

В конструкторе сценариев регулярные выражения можно использовать для следующих задач:

  1. Нахождение нужных данных в тексте клиента. Используйте регулярные выражения для поиска и извлечения определенных фрагментов текста, которые соответствуют заданным шаблонам. Это поможет получить нужные данные из ответов клиента.
  2. Проверка ответа клиента на соответствие требуемым данным. С помощью регулярных выражений вы можете проверить, отвечает ли сообщение клиента необходимому формату. Это позволит вам отвалидировать данные клиентов и отобрать корректные.
  1. При создании нового шага сценария нажмите «Проверяем» → «Соответствие условию» → «Ответы клиента в чат-боте».
  2. Выберите нужное сообщение клиента, к которому хотите применить регулярное выражение.
  3. Установите оператор «Регулярное выражение» и выберите тип «Свое выражение». Введите регулярное выражение и нажмите «Применить».

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

У регулярных выражений есть свой синтаксис. 

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

Самый простой тип — текстовый 

Работает аналогично оператору «=» с учетом регистра.

Пример:

Если клиент напишет «Привет», то выражение сработает и клиент пройдет эту ветку условия.

Если клиент напишет «привет» или «Привет как дела», или что-то другое — клиент попадет в ветку «Условие не сработало», так как его ответ не будет соответствовать условию — регулярному выражению.

Синтаксис:

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

  • Квадратные скобки

[ ] — внутри квадратных скобок можно указать, что мы хотим сравнить

[AО] означает, что мы будет ловить те случаи, когда клиент напишет А или О

[AО]рбуз означает, что мы будет ловить те случаи, когда клиент напишет  «Арбуз» или «Орбуз» 

  • Сокращения

Регулярные выражения в скобках можно сокращать:

[0–9] то же самое, что и [0123456789]

[а–ж] то же самое, что и [абвгдеж]

  • Исключения

Чтобы сделать исключение, используйте значок «^»:

Если мы хотим исключить определенные символы, используем скобки так:[^AО]рбуз — все слова с буквосочетанием «*рбуз» кроме «Арбуз» и «Орбуз»

Исключение символов можно сократить аналогичным образом: [^э–я1–3] — то же самое, что и [^эюя123]

  • Группировки

( ) — в круглые скобки можно объединить несколько текстовых элементов, к которым будет применяться общая операция.

  • Повторения

Квантификаторы — конструкции, которые позволяют указывать количество повторений предыдущего элемента.

Квантификатор Использование
? 0 или 1 повторение. То же, что и {0,1}
* 0 или более повторений. То же, что и {0,}
+ 1 или более повторений. То же, что и {1,}
{n} Ровно n повторений
{m,n} От m до n повторений
{m,} Не менее m повторений
{,n} Не более n повторений

Метасимволы — наиболее распространенные символы, используемые в регулярных выражениях.

Символ Значение
. 1 любой символ.
^ Начало строки. Например, «^abc» будет соответствовать строкам, которые начинаются с «abc».
$ Конец строки. Например, «abc$» будет соответствовать строкам, которые заканчиваются на «abc».
* Предыдущий элемент может повторяться ноль или более раз.
+ Предыдущий элемент должен повторяться один или более раз.
? Предыдущий элемент может присутствовать или отсутствовать (0 или 1 раз).
[] Класс символов. Например, «[abc]» будет соответствовать любому символу «a», «b» или «c».
[^] Отрицательный класс символов. Например, «[^abc]» будет соответствовать любому символу, кроме «a», «b» или «c».
() Группа символов.
| Или, либо. Например, «a|b» будет соответствовать либо «a», либо «b».
\ Экранирование специальных символов. Например, «\d» (цифра), «\s» (пробел) и т. д.
{} Определяет количество повторений предыдущего элемента. Например, «a{3}» будет соответствовать только строке «aaa».
\d Любая цифра.
\w Любая буква, цифра или символ подчеркивания.
\s Любой пробельный символ.

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

Как работать с шаблонами:

  1. Нажмите «Проверяем» → «Соответствие условию» → «Ответы клиента в чат-боте».
  2. Выберите сообщение клиента, к которому нужно применить регулярное выражение.
  3. Установите оператор «Регулярное выражение» и выберите подходящий шаблон из типов регулярных выражений, например «Текст (RU)». При наведении на шаблон отобразится подсказка, помогающая определить его назначение.

Особенности: в конструкторе сценариев в регулярных выражениях не получится использовать флаги.