# Регулярные выражения

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

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

{% hint style="warning" %}
**Важно!**

Все нижеприведенные значения проверяют **СТРОГОЕ СООТВЕТСТВИЕ** текста в строке.&#x20;

Это значит, что кроме этих символов в строке **НЕ** может быть других символов!&#x20;
{% endhint %}

Иногда возникает необходимость проверить, содержится ли текст в нужном формате в строке, но кроме него нужно разрешить и другие символы. Например, бот должен принять ссылку на домашку и краткое описание. Текст без ссылки нужно считать некорректным.&#x20;

В таком случае просто уберите символ ^ в начале регулярки и символ $ в конце, и регулярное выражение начнет проверять, СОДЕРЖИТСЯ ЛИ текст нужного формата.&#x20;

{% hint style="info" %}
&#x20;В поле с регуляркой справа есть символ для копирования одним кликом
{% endhint %}

<table><thead><tr><th width="512.1573815876583">Регулярка</th><th>Описание</th></tr></thead><tbody><tr><td><pre><code>^(0?[1-9]|[12][0-9]|3[01]).(0?[1-9]|1[012]).((19|20)[0-9]{2})$
</code></pre></td><td><p><mark style="color:orange;">Дата</mark> в формате dd mm yyyy</p><p>Разделитель - любой символ, например:</p><p>01.01.2035</p><p>31/12/2000</p></td></tr><tr><td><pre><code>^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$
</code></pre></td><td><p><mark style="color:orange;">Время</mark></p><p>Формат</p><p>ЧЧ:ММ</p><p>ЧЧ:ММ:СС</p></td></tr><tr><td><pre><code>^\d+$
</code></pre></td><td><p><mark style="color:orange;">Целое число</mark></p><p>Любое целое положительное число.</p></td></tr><tr><td><pre><code>^-?\d+$
</code></pre></td><td><p><mark style="color:orange;">Целое число</mark></p><p>Может быть как положительным, так и отрицательным</p></td></tr><tr><td><pre><code>^(1[8-9]|[2-8][0-9]|9[0-5])$
</code></pre></td><td><p><mark style="color:orange;">Возраст от 18 до 95 лет</mark></p><p>Целое число от 18 до 95</p></td></tr><tr><td><pre><code>^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$
</code></pre></td><td><mark style="color:orange;">Мобильный номер телефона (Россия)</mark></td></tr><tr><td><pre><code>.+@.+\..+
</code></pre></td><td><mark style="color:orange;">Почта</mark><br>example@domain.com</td></tr><tr><td><pre><code>https?:\/\/[A-zА-яЁё0-9][A-zА-яЁё0-9\-]+\.[A-zА-яЁё0-9\-]+
</code></pre></td><td>Текст <mark style="color:orange;">содержит</mark> ссылку</td></tr><tr><td><pre><code><strong>^[!@#$%^&#x26;*()_\-=+\\\/:;'"`&#x3C;>,.№\s?\[\]{}A-zА-яЁё0-9~]+$
</strong></code></pre></td><td>Текст <mark style="color:orange;">не содержит</mark> смайлов</td></tr><tr><td><pre><code>^((8|\+374|\+994|\+995|\+375|\+7|\+380|\+38|\+996|\+998|\+993)[\- ]?)?\(?\d{3,5}\)?[\- ]?\d{1}[\- ]?\d{1}[\- ]?\d{1}[\- ]?\d{1}[\- ]?\d{1}(([\- ]?\d{1})?[\- ]?\d{1})?$
</code></pre></td><td>Мобильные и городские номера России и СНГ.<br><br>Армения (+374), Азербайджан (+994) Грузия (+995) <br>Беларусь (+375) <br>Россия/Казахстан (+7) Украина (+380, +38) Киргизия (+996) Узбекистан (+998) Туркмения (+993) Узбекистан (+998)</td></tr><tr><td><pre><code>^[A-Za-z\d_]{5,32}$
</code></pre></td><td>Никнейм в Telegram</td></tr><tr><td><pre><code>^(https?:\/\/)?([\w-]{1,32}\.[\w-]{1,32})[^\s@]*$
</code></pre></td><td>Проверка на ссылку</td></tr></tbody></table>

Протестировать, подходит ли вам это регулярное выражение, можно на сайте [regex101.com](https://regex101.com).

![Пссс, если нажмёшь на картинку - она увеличится :)](/files/ysmXUnSyQHe0IEyKRlhu)

В верхнем поле вставляем регулярку, в нижнем пишем свои значения. То, что подсвечивается - попало под шаблон. Строки 4 и 5 не подсвечиваются, следовательно, не подходят под регулярку.

{% hint style="success" %}
Если вам необходима специфичная регулярка, но вы не знаете, как её составить - [напишите в поддержку](/kak-zadat-vopros-v-podderzhku.md).

Мы всегда рады прийти на помощь! :relaxed:
{% endhint %}


---

# 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.leadconverter.su/regulyarnye-vyrazheniya.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.
