# Робота з виразами

{% hint style="danger" %}
Зверніть увагу, що час виконання регулярного виразу становить 5 секунд.
{% endhint %}

findall() | similar()

<mark style="color:red;">**ЛЕГЕНДА:**</mark>

<mark style="color:red;">**!**</mark> - Обов’язкові параметри

#### <mark style="color:за замовчуванням;background-color:blue;">Пошук у рядку за допомогою регулярного виразу</mark>

**findall(reg, str, index) -** для пошуку всіх збігів груп у рядку

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;reg** - регулярний вираз

<mark style="color:red;">**!**</mark>**&#x20;str** -  рядок, у якому виконується пошук

&#x20;**index** - індекс знайденого результату. Він починається з нуля. Це означає, що перший знайдений результат має індекс 0.

<mark style="color:за замовчуванням;background-color:blue;">**Порівняння рядків із толерантністю до друкарських помилок**</mark>

**similar(str1, str2)** - порівнює два рядки, допускаючи помилки. Повертає True, якщо рядки відрізняються менш ніж на 30%.

<details>

<summary>Приклад</summary>

Давайте подивимося на приклад пошуку рядка за допомогою вказаного регулярного виразу:

<div data-with-frame="true"><figure><img src="/files/0b0e8652271ec253cf8386b6c27516826f31cf2b" alt="" width="375"><figcaption></figcaption></figure></div>

Результат такий:

<div data-with-frame="true"><figure><img src="/files/916adf04f350678b8f1134586be60e8a648d215a" alt="" width="375"><figcaption></figcaption></figure></div>

Приклад використання функції порівняння рядків із толерантністю до друкарських помилок:&#x20;

У стартовому блоці ми додаємо нашу загадку в розділ повідомлення. Потім ми також додаємо відповідь на нашу загадку в калькулятор за допомогою змінної:

**riddle = 'cold'.**

У другому блоці ми вводимо в калькулятор такий вираз:

**response = if(similar(riddle, question) == True, "super!", "Nooo! it's a #{riddle}").**

Не забудьте додати **#{response}** до розділу повідомлення.

<div data-with-frame="true"><figure><img src="/files/d6525573618cd6ed8135d3f010f3b3393f71ea22" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/810d33be86bd313c473bf10cbe07725f66238433" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/3c873876b2706bdcd8fbc16b0119ef32dab7cf31" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Код</summary>

<pre><code><strong>a = findall('.ai\/(.+)\/', 'https://payform.com/ab252acn/', 0)
</strong>
response = if(similar(riddle, question) == True , "super!", "Nooo! it's a #{riddle}")
</code></pre>

</details>


---

# 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://docs.mavibot.ai/doc/uk/chatbot/functions/kalkulyator/expressions.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.
