Регулярные выражения в конструкторе сценариев
Регулярные выражения — это шаблоны, которые используются для поиска и обработки текста с определенными характеристиками. Они предоставляют мощный инструмент для работы с текстом на основе заданных правил сопоставления.
В конструкторе сценариев регулярные выражения можно использовать для следующих задач:
- Нахождение нужных данных в тексте клиента. Используйте регулярные выражения для поиска и извлечения определенных фрагментов текста, которые соответствуют заданным шаблонам. Это поможет получить нужные данные из ответов клиента.
- Проверка ответа клиента на соответствие требуемым данным. С помощью регулярных выражений вы можете проверить, отвечает ли сообщение клиента необходимому формату. Это позволит вам отвалидировать данные клиентов и отобрать корректные.
- При создании нового шага сценария нажмите «Проверяем» → «Соответствие условию» → «Ответы клиента в чат-боте».
- Выберите нужное сообщение клиента, к которому хотите применить регулярное выражение.
- Установите оператор «Регулярное выражение» и выберите тип «Свое выражение». Введите регулярное выражение и нажмите «Применить».
Так вы сможете использовать регулярные выражения для работы с сообщениями клиентов в конструкторе сценариев.
У регулярных выражений есть свой синтаксис.
Важно учитывать язык, на котором написан текст сообщения. Разные языки имеют разные алфавиты и правила написания слов, поэтому регулярное выражение должно соответствовать конкретному языку.
Самый простой тип — текстовый
Работает аналогично оператору «=» с учетом регистра.
Пример:
Если клиент напишет «Привет», то выражение сработает и клиент пройдет эту ветку условия.
Если клиент напишет «привет» или «Привет как дела», или что-то другое — клиент попадет в ветку «Условие не сработало», так как его ответ не будет соответствовать условию — регулярному выражению.
Синтаксис:
В регулярных выражениях можно использовать:
- Квадратные скобки
[ ] — внутри квадратных скобок можно указать, что мы хотим сравнить
[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 | Любой пробельный символ. |
В регулярных выражениях можно использовать предопределенные шаблоны для удобной проверки сообщения клиента.
Как работать с шаблонами:
- Нажмите «Проверяем» → «Соответствие условию» → «Ответы клиента в чат-боте».
- Выберите сообщение клиента, к которому нужно применить регулярное выражение.
- Установите оператор «Регулярное выражение» и выберите подходящий шаблон из типов регулярных выражений, например «Текст (RU)». При наведении на шаблон отобразится подсказка, помогающая определить его назначение.
Особенности: в конструкторе сценариев в регулярных выражениях не получится использовать флаги.