# Expressions régulières

Les expressions régulières sont des motifs qui permettent à un bot de valider le format de la saisie utilisateur — par exemple, pour s’assurer que l’entrée est un numéro de téléphone plutôt qu’autre chose.

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

{% hint style="warning" %}
Pour comparer à l’aide d’une expression régulière, vous devez définir le type de correspondance sur « Correspondance RegEx ».
{% endhint %}

{% hint style="info" %}
Les expressions régulières doivent être écrites dans le déclencheur lui-même, et non dans les variables utilisées pour la correspondance !
{% endhint %}

Lors de la collecte de données, les utilisateurs saisissent souvent autre chose que ce qui leur est demandé. Voici un flux typique pour valider une saisie de numéro de téléphone. Si l’utilisateur ne saisit pas un numéro de téléphone valide, le bot lui demandera de réessayer.

<div data-with-frame="true"><figure><img src="/files/753b3744386b1f8a01c258a033cca86503b1cdd3" alt="" width="563"><figcaption></figcaption></figure></div>

Le bloc de saisie du numéro de téléphone a deux connexions sortantes : l’une sans déclencheur, et l’autre avec un déclencheur qui utilise une expression régulière pour faire correspondre un numéro de téléphone.

^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

Ce flux utilise deux connexions pour gérer la validation du numéro de téléphone :

1. **Connexion principale (numéro valide)**
   * **Déclencheur :** Un numéro de téléphone au format correct.
   * **Action :** Ajoute le numéro à l’application et poursuit.
2. **Connexion de secours (entrée invalide)**
   * **Priorité :** Inférieure à celle de la connexion principale.
   * **Déclencheur :** Toute entrée qui n’est pas un numéro de téléphone valide.
   * **Action :** Informe l’utilisateur de l’erreur et le redirige pour qu’il réessaie.

Cela garantit que l’utilisateur ne progresse qu’après avoir fourni des données valides, tout en recevant un retour immédiat sur toute erreur.

## Une liste d’expressions régulières utiles :

* **Entrée numérique uniquement des chiffres commençant par 1 :**\
  ^\[1-9]+\[0-9]\*$
* **Entrée numérique uniquement des chiffres commençant par 0 :**\
  ^\[0-9]+\[0-9]\*$
* **Numéro de carte bancaire :**\
  \[0-9]{13,16}
* **Numéro de téléphone général :**\
  ^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
* **Lettres et chiffres** (latin) :\
  ^\[a-zA-Z0-9]+$
* **domaine** (par ex. abcd.com) :\
  ^(\[a-zA-Z0-9]\(\[a-zA-Z0-9\\-]{0,61}\[a-zA-Z0-9])?\\.)+\[a-zA-Z]{2,6}$
* **URL** (par ex. abcd.com) :\
  (https?):((//)|(\\\\\\\\))+\[\w\d:#@%/;$()\~\_?\\+-=\\\\\\.&]\*
* **IPv4 :**\
  ((25\[0-5]|2\[0-4]\d|\[01]?\d\d?)\\.){3}(25\[0-5]|2\[0-4]\d|\[01]?\d\d?)
* **IPv6 :**\
  ((^|:)(\[0-9a-fA-F]{0,4})){1,8}$
* **Nom d’utilisateur** (avec une limite de 2 à 20 caractères, qui peuvent être des lettres et des chiffres, le premier caractère doit être une lettre) :\
  ^\[a-zA-Z]\[a-zA-Z0-9-\_\\.]{1,20}$
* **Mot de passe** (Lettres latines minuscules et majuscules, chiffres) :\
  ^(?=.\*\d)(?=.\*\[a-z])(?=.\*\[A-Z])(?!.\*\s).\*$
* **Mot de passe fort** (majuscules, minuscules, chiffres/caractères spéciaux, min. 8 caractères) :\
  (?=^.{8,}$)((?=.\*\d)|(?=.\*\W+))(?!\[.\n])(?=.\*\[A-Z])(?=.\*\[a-z]).\*$
* **Date au format AAAA-MM-JJ :**\
  \[0-9]{4}-(0\[1-9]|1\[012])-(0\[1-9]|1\[0-9]|2\[0-9]|3\[01])\
  **MÀJ.** Validation de date plus stricte :\
  (19|20)\d\d-((0\[1-9]|1\[012])-(0\[1-9]|\[12]\d)|(0\[13-9]|1\[012])-30|(0\[13578]|1\[02])-31)
* **Date au format JJ/MM/AAAA :**\
  (0\[1-9]|\[12]\[0-9]|3\[01])\[- /.]\(0\[1-9]|1\[012])\[- /.]\(19|20)\d\d
* **Date au format JJ.MM.AAAA :**\
  (0\[1-9]|\[12]\[0-9]|3\[01])\[.]\(0\[1-9]|1\[012])\[.]\(19|20)\d\d
* N**ombres entiers et nombres à virgule flottante** (point comme séparateur décimal)\
  \\-?\d+(\\.\d{0,})?
* **UUID** :\
  ^\[0-9A-Fa-f]{8}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{4}\\-\[0-9A-Fa-f]{12}$
* **Latitude ou longitude :**\
  -?\d{1,3}\\.\d+
* **MÀJ. E-mail** :\
  ^\[-\w.]+@(\[A-z0-9]\[-A-z0-9]+\\.)+\[A-z]{2,4}$
* <mark style="color:red;">**MÀJ. URL**</mark> \
  \~^(?:(?:https?|ftp|telnet)://(?:\[a-z0-9\_-]{1,32}(?::\[a-z0-9\_-]{1,32})?@)?)?(?:(?:\[a-z0-9-]{1,128}\\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|\[a-z]{2})|(?!0)(?:(?!0\[^.]|255)\[0-9]{1,3}\\.){3}(?!0|255)\[0-9]{1,3})(?:/\[a-z0-9.,\_@%&?+=\\\~/-]\*)?(?:#\[^ '\\"&]\*)?$\~i
* **MÀJ. Heure au format HH:MM:SS** : format\
  ^(\[0-1]\d|2\[0-3])(:\[0-5]\d){2}$
* **MÀJ. Adresse MAC** :\
  (\[0-9a-fA-F]{2}(\[:-]|$)){6}$|(\[0-9a-fA-F]{4}(\[.]|$)){3}

Un grand nombre d’expressions régulières sont disponibles. Si vous ne trouvez pas celle dont vous avez besoin dans cette liste, il est conseillé d’utiliser un moteur de recherche.

Vous pouvez tester facilement les expressions régulières sur des sites comme : <https://regex101.com/>


---

# 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/fr/chatbot/functions/regex.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.
