# Проверка формата введенных собеседником данных | Слот Regular Expression и под-слот Result

## Назначение и общая информация

Слот Regular Expression — Слот, позволяющий проверить содержимое Контекстная переменная client\_message на соответствие формату, заданному посредством регулярного выражения, и в зависимости от соответствия выполнить переход в соответствующую Ветка сценария.

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-HMZcMaFs95/ce41488ec6a9e18751ed598b37e152eb8859ee8f01fe4dd7f047c0dc4474e99cd0e049c80f98a2488c3246da8f9ca3604ab720d683883b6ea26b95195fc0aefe9b7718001bb1cae7c09513b3980e7868e6ad0a9a9e5129dce5f698d448bf470673102661)

Слот Regular Expression является Комплексный слот и не может существовать без Дочерний слот result, которые начинают собственные Ветка сценария, в которые будет осуществлен переход  после проверки сообщения на соответствие регулярному выражению.![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-UWY-R-sw_C/83f0478347e73f6192a7f71db9aedf523f3440f1414a20665ff52c882a59e22038440a847583d6f06e17fc56b05ed34551726226c1877037a42d99f2edb1260f680c8717347e897b5528cafd435af15b7c0b9323272b6da2a473b0396958645d00cbcc94)

Слот Regular Expression обрабатывает содержимое переменной Контекстная переменная client\_message в неизменном виде или приведенной к нижнему регистру, в зависимости от того, включена ли в Слоте опция Lowercase source message.

## Создание и настройки комплексного слота Regular Expression

### Атрибуты слота

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-BT52PqIETJ/82a6847a18b61c8752feadccaa7d3cc1ace1c78723b0338719a8c07c929a4fa093120136344a1e527b3407a65f7d6dde8a2f09b2ca87f80d9d3f37476fc7eac3f6fa1c856084e1e4d39fce3af2f35999fc2db3db20a896f59bacc1379ad684662a713349)

1. NAME\* — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов.
2. Опция Lowercase source message — опция, при включении которой сообщение в client\_message будет приводиться к нижнему регистру.
3. EXPRESSION\* ー Регулярное выражение. Статья о регулярных выражениях: <https://tproger.ru/translations/regular-expression-python/>
4. 1. Обрезка пробелов: по нажатию кнопки CREATE (при создании слота) или SAVE (при редактировании слота) обрезаются пробелы и переносы строк в начале и в конце поля EXPRESSION.

### Атрибуты подслота Result

![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-aH647ZoCI9/82c2c58dad5591cf9e35d41d0645abb5494e28e15bd47d9627c9d53523806bb470d949ea0943fd808147ec67ef8d761829e579cf864361a61331c393e2a6525bf2d7aaa70189cba30d9250c257167bea865792438a1674c1c79ed5d266363a09ac75ace3)

1. Name — название Слота, которое будет отображено в Дерево сценария. Максимальная длина значения поля — 40 символов. Если название не введено, на Подслоте в Дерево сценария будут отображаться первые 34 символа из поля Value.
2. Value\* — строка, с которой будет сравниваться значение Контекстная переменная client\_message.

### Содержание слота

Слот должен содержать регулярное выражение на языке Python. Примеры часто используемых в Агентах регулярных выражений:

* Только цифры:
* ^\[\d]+$
* Только латинские буквы, числа, знаки переноса
* ^(\[A-Za-z0-9-]+)$
* Адрес электронной почты
* \[a-zA-Z0-9\_.+-]+@\[a-zA-Z0-9-]+\\.\[a-zA-Z0-9-.]+
* Номер телефона РФ
* (\\+7|7|8)?\[\s\\-]?\\(?\[489]\[0-9]{2}\\)?\[\s\\-]?\[0-9]{3}\[\s\\-]?\[0-9]{2}\[\s\\-]?\[0-9]{2}$
* URL
* (https?:\\/\\/)?(www\\.)?\[-a-zA-Z0-9@:%.\_\\+\~#=]{2,256}\\.\[a-z]{2,6}\b(\[-a-zA-Z0-9@:%\_\\+.\~#?&\\/\\/=]\*)
* Поиск одной из подстрок в строке
* .\*(подстрока1|подстрока2).\*

> Важно: использование масок в слоте Regular Expression не поддерживается.

### Подслоты Result

#### Автоматическая генерация подслотов при создании слота Regular Expression

* При создании Слота Regular Expression автоматически генерируются два Подслота result со значениями “true” и “false”.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-BhdPnlegll/dd092cb402df4332ec109f286483bcbb442ec1a7be0374c736e6605a77e2dec6d158d9afbf15f5ed611c34eebed71b7a107e64f21863c65c2d76b259fb9cbf5e795fd3ca6a9d36bdaf9e543a7a46aca1f027e07f7ef2370c99c2fa92a9c22f8ab685bcc5)
* Эти Подслоты не подлежат изменению и их можно удалить только с родительским слотом Regular Expression.
* Расположение Подслотов определяется автоматически, перемещать подслоты нельзя:
* * Подслот result со значением “false” всегда является самым верхним подслотом в данном комплексном слоте Regular Expression (если строка не соответствует регулярному выражению, то нет смысла дальше проверять, будет осуществлен выход в ветку данного подслота - см. Работа слота);
  * Подслот result со значением “true” всегда является самым нижним подслотом в данном комплексном слоте Regular Expression.

#### Добавление подслотов Result

* Для создания нового Подслота  result необходимо нажать на кнопку +;
* ![новая рег.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-vRZIInSM1E/122895379547b2d72c63a22f24ee3035394bcbeb56c433820dbfeb18538d1ab34a46299c66c64976490a85a7f4a8af194540e7ac71a3a6068d297dbe4414b84cc568481fbd23d9eb94be6d2adaca4543303a35052c2fc53c99390a64f0121de738ae1a92)
* В Подслоте необходимо прописать необходимое значение — это может быть любая строка, состоящая из чисел, букв и символов, с которой буде сравниваться client\_message.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Rs2W0vzrXg/325f3685e33f4b275a3f7d6d234c994a1513049ba924153cba6d3f30952621aaea237a61316e4009aa3bf28785bde889b4668e4a9fc2824ae8e84ab7774fa56c8ca8dc1a27308551442a0c6f1e94a5dcaa8dfbc3465bbe46c4a825bcba6fa1902633986c)
* При создании пользователем новых Подслотов result, содержащих точное значение, они будут располагаться между Подслотами “true” и “false” сверху вниз в порядке их создания.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Aw7wuHLoiu/6f732cd983748acb0a64e14338dd56741a8ad2d88224b896b112705c6dbe502e8901f4f665ef0ce50fda34f1d18836110b063a39b523fc5fbe4b7b121d056f8c943df35e2976167ebbf7c38701e6e014bf721a8c6996521657881a346e197d73ce497555)
* При проверке на точное значение символы ‘ и \ в Подслоте result должны быть экранированы: им должен предшествовать символ  \\, в противном случае Агент не обучится. Подробнее: [Требования для успешного обучения Агента](/docs/kak-obuchit-i-protestirovat-agenta/trebovaniya-dlya-uspeshnogo-obucheniya-agenta.md).
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-qlyhFeganT/d48c29c3531c937535670c1470baf559165111c32e04986b04dc96a04c50cd54a0e20cdad4cc9b81c03e86069ceb80105228355549bcc68ea5fea8deb6556edf745856ddf690fd2182c91b95f148226a3922f4c112c6c6cc36c4cfb7e4a0e4db1c1c0d9a)

#### Удаление подслотов Result

* Чтобы удалить Подслот result, необходимо кликнуть по нему правой кнопкой мыши и нажать кнопку Remove Branch, затем нажать OK во всплывшем диалоговом окне.
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-uzi5dlNXMv/2fa7da1c4664ad456a3065e92e8e0c603c68168b8dd0310e5e391c73af0b60f4368f8e742bb73fb00f6c4fc35b10668c0a1ac7697238425ae386a5366311e16d3dd21ea76ac2ff89fba3717dc7d6d6de21f625e408bbe5dc7d79d775e75ec01c04b57b09)![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-GWvwjOBsYH/275ef1532b77789d70d6897b35dcfdbebcf06129685f6960b4b5051f249bae3b43b596db2244a8338bde3604b1199dfd8986f269b4a0554ca8366170aaf39d9850684574a98790348d2c2587116fcf1bda7010d1b8b05760bd485a6580231763115177f9)
* Возможно удалить только созданные вручную Подслоты result.
* Удаление автоматически сгенерированных Подслотов result со значениями true и false невозможно. При попытке это сделать появится следующая ошибка по центру внизу:
* ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-39cQ5Snuvs/d5bfee6c8c8f034a0b08fd4632f08df8a5577a3aa3f1a98de8cb9f5cdad20c63f40f554e8357c49eb68c77e107b3b8db07f59b72d67f4cf59490c64458f931a53c743ccb1d29e6c369d101321343582b40de75ba0878144cf3a91c2baa9320c30a3745a9)

## Работа слота

1. Агент делает копию содержимого Контекстная переменная client\_message.
2. Если в Слоте включена опция Lowercase source message, значение client\_message приводится к нижнему регистру. Если опция выключена — значение остается неизменным.
3. Полученное значение проверяется на соответствие регулярному выражению, прописанному в слоте Regular Expression. Результат проверки может быть:
4. 1. false (ложь) — значение client\_message не соответствует регулярному выражению,
   2. 1. при этом будет создана Системная контекстная переменная error, содержащая текст ошибки;
   3. true (истина) — значение client\_message соответствует регулярному выражению
   4. 1. при этом будет создана Контекстная переменная parse\_result, куда будет записана соответствующая регулярному выражению часть client\_message, в т.ч. это может быть содержимое client\_message полностью;
      2. в случае если в client\_message есть несколько подстрок, соответствующих регулярному выражению, в Контекстная переменная parse\_result  будет записана первая соответствующая подстрока.
5. Выход из Комплексный слот Regular Expression+result: Результат проверки последовательно сверху вниз сравнивается со значениями в  Подслотах result и осуществляется переход в соответствующую Ветка сценария, по очереди выполняются следующие проверки:
6. * Несоответствие регулярному выражению: Если Результат проверки — false (ложь), то будет осуществлен переход в Ветка сценария самого верхнего Подслота result со значением “false”
   * Соответствие точному значению: Если Результат проверки — true (истина) — и есть созданные пользователем  Подслоты result для проверки на точное соответствие, то будет осуществлен переход в Ветка сценария первого Подслота, значение которого совпадет с client\_message.
   * Соответствие регулярному выражению: Если Результат проверки — true (истина) — и нет Подслотов result для проверки на точное соответствие, или значения в них не совпадают с client\_message, то будет осуществлен переход в Ветка сценария самого нижнего Подслота result со значением “true”
7. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-3ojdBasloN/b2062df2d14bab886cc328cf21d0d46f6fcf49c1de1c2c731a58c840805757f1b6dc48e3bf7e46d6972933150ae23d3326b26d3642cab018b7d656b51e3303e39d04fc7994d5b4b288eafb06b47598b6e2d44a52d5234c1cba054dcbd8c601763be95894)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chatme-ai-4.gitbook.io/docs/proekty-na-platforme/proekt-i-ego-soderzhimoe/agenty-na-platforme/kak-postroit-scenarii-agenta/kak-sozdavat-i-nastraivat-sloty/proverka-formata-vvedennykh-sobesednikom-dannykh-or-slot-regular-expression-i-pod-slot-result.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
