Search the knowledge base, browse our resources, and visit our forum for more detailed information
Read in English | Leer en español | اقرأ باللغة العربية Dernière mise à jour : 29 juil. 2025
Une expression régulière, ou regex, est un modèle de recherche utilisé pour faire correspondre des caractères spécifiques et des plages de caractères dans une chaîne. Elle est largement utilisée pour valider, rechercher, extraire et restreindre du texte dans la plupart des langages de programmation. KoboToolbox prend en charge les regex pour contrôler la longueur et les caractères lors de la saisie de données pour une question particulière (par exemple, contrôler la saisie d’un numéro de téléphone portable à exactement 10 chiffres, contrôler la saisie d’une adresse e-mail valide, etc.).
Préparez une question de type Texte.
Accédez aux Paramètres de la question.
Accédez à Critères de validation et choisissez l’option Saisir manuellement votre logique de validation en code XLSForm.
Dans la zone Code de validation, saisissez votre formule regex entre les guillemets (' ') du format regex(., ' '). Pour référence, le point (.) fait référence à “cette question”, tandis que l’expression régulière à l’intérieur des guillemets (' ') doit être conforme aux règles regex établies.
(Facultatif) Ajoutez un Message d’erreur personnalisé que la personne saisissant les données verra lorsqu’elle ne respecte pas les critères regex.

Les regex peuvent également être codées dans XLSForm, sous la colonne constraint :
feuille survey
type |
name |
label |
appearance |
constraint |
constraint_message |
|---|---|---|---|---|---|
text |
q1 |
Numéro de téléphone portable du répondant |
numbers |
regex(., “^[0-9]{10}$”) |
Cette valeur doit contenir uniquement 10 chiffres |
survey |
Alternativement, vous pouvez créer une question de type calculate puis définir le code regex sous la colonne calculation. Vous pourriez ensuite utiliser cette variable autant de fois que nécessaire dans l’enquête :
feuille survey
type |
name |
label |
calculation |
constraint |
constraint_message |
|---|---|---|---|---|---|
calculate |
q0 |
“^[A-Z]{1}[a-z]{1,}\s[A-Z]{1}[a-z]{1,}$” |
|||
text |
q1 |
Nom de l’enquêteur |
regex(., ${q0}) |
Veuillez utiliser ce format : Kobe Bryant |
|
text |
q2 |
Nom du répondant |
regex(., ${q0}) |
Veuillez utiliser ce format : Kobe Bryant |
|
integer |
q3 |
Âge du répondant |
|||
survey |
Regex |
Description |
|---|---|
|
Accepte les caractères accentués minuscules et majuscules |
|
Accepte les caractères accentués minuscules et majuscules mais incluant les lettres avec un tréma (inclut [ ] ^ \ × ÷) |
|
Accepte les caractères accentués minuscules et majuscules mais n’incluant pas [ ] ^ \ |
|
Accepte les caractères accentués minuscules et majuscules mais n’incluant pas [ ] ^ \ × ÷ |
Pour toutes les questions de type text qui utilisent des nombres, n'oubliez pas de saisir numbers sous la colonne appearance.
Regex |
Description |
|---|---|
|
Restreindre le numéro de téléphone portable à dix chiffres |
|
Restreindre une saisie à |
|
Restreindre une saisie entre |
|
Restreindre une saisie soit à |
|
Restreindre une saisie de neuf chiffres où le premier nombre ne peut pas être |
|
Restreindre une saisie à un chiffre entre |
|
Restreindre une saisie à cinq chiffres entre |
|
Restreindre une saisie à deux chiffres et trois décimales (par exemple |
|
Restreindre une saisie à deux chiffres et trois décimales (tandis que les décimales sont facultatives) (par exemple |
|
Restreindre une saisie à des nombres de |
Regex |
Description |
|---|---|
|
Restreindre une saisie à n’importe quelles lettres minuscules (jusqu’à 6 caractères) |
|
Restreindre une saisie à n’importe quelles lettres majuscules (jusqu’à 10 caractères) |
|
Restreindre une saisie uniquement soit à |
|
Restreindre une saisie uniquement à |
|
Restreindre une saisie du nom des bénéficiaires où les initiales du prénom et du nom de famille sont en majuscules par exemple |
|
Restreindre une saisie du nom des bénéficiaires avec prénom, deuxième prénom (le cas échéant) et nom de famille par exemple |
|
Restreindre une saisie du nom complet des bénéficiaires où les initiales des noms sont en majuscules et le nom est assez long (souvent supérieur à 3 mots) par exemple |
|
Restreindre une saisie du prénom des bénéficiaires (afin de pouvoir capturer l’orthographe exacte) où les enquêteurs sont obligés de saisir le prénom des bénéficiaires deux fois par exemple |
|
Restreindre une saisie du nom de famille des bénéficiaires (afin de pouvoir capturer l’orthographe exacte) où les enquêteurs sont obligés de saisir le nom de famille des bénéficiaires deux fois par exemple |
|
Restreindre un caractère dans un mot en utilisant le |
|
Restreindre un caractère dans un mot en utilisant le |
|
Restreindre un caractère dans un mot en utilisant le |
|
Restreindre une saisie à un caractère non numérique (par exemple |
|
Restreindre une saisie à cinq caractères non numériques (par exemple |
|
Restreindre toute la saisie de texte en majuscules, excluant les caractères spéciaux (! @ # $ % ^ & * ( ) . , ? / « “ etc.) |
|
Restreindre toute la saisie de texte en majuscules, incluant les caractères spéciaux (! @ # $ % ^ & * ( ) . , ? / « “ etc.) |
|
Restreindre toute la saisie de texte en minuscules, excluant les caractères spéciaux (! @ # $ % ^ & * ( ) . , ? / « “ etc.) |
|
Restreindre toute la saisie de texte en minuscules, incluant les caractères spéciaux (! @ # $ % ^ & * ( ) . , ? / « “ etc.) |
Regex XLSForm |
Description |
|---|---|
|
Restreindre un caractère qui correspond entre |
|
Restreindre trois caractères qui correspondent entre |
|
Restreindre votre ID de bénéficiaire à un format spécifique par exemple |
|
Restreindre votre ID de bénéficiaire à un format spécifique par exemple |
|
Restreindre une saisie de devise de trois chiffres avec un symbole de devise (soit |
|
Restreindre une saisie exacte du nombre de mots (par exemple pour restreindre exactement 3 mots |
|
Restreindre une saisie du nombre de mots (par exemple pour restreindre une plage de mots disons |
Ces exemples sont purement illustratifs et doivent être ajustés pour votre cas d'utilisation. L'utilisation de regex pour contraindre les adresses e-mail ne garantit pas qu'elles sont valides, seulement qu'elles suivent un modèle attendu.
Regex |
Description |
|---|---|
|
Restreindre la saisie à une adresse e-mail valide (par exemple, |
Regex |
Description |
|---|---|
|
Restreindre une saisie d’heure au format |
|
Restreindre une saisie d’heure au format |
Si vous souhaitez utiliser une contrainte regex sur un nombre dans une question de type text, assurez-vous d’avoir toujours la valeur numbers sous la colonne appearance. Cela restreint l’affichage des lettres, rendant uniquement les nombres visibles pour les saisies.
L’application Android Collect et Enketo se comportent différemment dans leur gestion des expressions regex. Collect se comporte comme si vous aviez utilisé les ancres ^ et $ autour de l’expression (même si vous ne les avez pas utilisées), tandis qu’Enketo exige les ancres comme obligatoires pour une correspondance exacte.
Did you find what you were looking for? Was the information clear? Was anything missing?
Share your feedback to help us improve this article!
KoboToolbox is maintained by Kobo Inc.
Comment construire la regex dont j’ai besoin ?¶
En plus des exemples et conseils fournis ci-dessous, veuillez consulter ce site web pour plus d’aide et d’exemples.
Les regex dans KoboToolbox doivent toujours être écrites entre les apostrophes
regex(., ' ')comme indiqué dans les exemples.Regex
Description
^Le symbole caret correspond au début d’une chaîne sans consommer aucun caractère.
$Le symbole dollar correspond à la fin d’une chaîne sans consommer aucun caractère.
[abc]Correspond soit à
a,boucparmi les crochets[ ].[a-z]Correspond à n’importe quel caractère minuscule de
aàz.[A-Z]Correspond à n’importe quel caractère majuscule de
AàZ.[0-9]Correspond à n’importe quel nombre entier de
0à9.[a-zA-Z0-9]Correspond à n’importe quel caractère de
aàzouAàZou0à9.[^abc]Correspond à n’importe quel caractère sauf
a,bouc.[^A-Z]Correspond à n’importe quel caractère sauf ceux de la plage
AàZ.(apple)Le caractère de regroupement
( )correspond à tout ce qui se trouve entre les parenthèses.|Une barre verticale correspond à n’importe quel élément séparé.
\Une barre oblique inverse est utilisée pour correspondre à la valeur littérale de tout métacaractère (par exemple, essayez d’utiliser
\.ou\@ou\$lors de la construction de regex).\numberCorrespond au même caractère que celui récemment mis en correspondance par le nième (numéro utilisé) groupe de capture.
\sCorrespond à n’importe quel espace ou tabulation.
\bCorrespond, sans consommer aucun caractère, immédiatement entre un caractère correspondant à
\wet un caractère ne correspondant pas à\w(dans les deux sens).\best également connu sous le nom de limite de mot.\dCorrespond à n’importe quel nombre équivalent
[0-9]\DCorrespond à tout sauf les nombres
(0 à 9).\wCorrespond à n’importe quel caractère de mot (c’est-à-dire
aàzouAàZou0à9ou_).\WCorrespond à tout sauf ce à quoi
\wcorrespond (c’est-à-dire qu’il correspond aux caractères génériques et aux espaces).?Un point d’interrogation utilisé juste derrière un caractère correspond ou ignore (si non requis) une correspondance de caractère.
*Un symbole astérisque utilisé juste derrière un caractère correspond à zéro ou plusieurs caractères consécutifs.
+Le symbole plus utilisé juste derrière un caractère correspond à un ou plusieurs caractères consécutifs.
{x}Correspond exactement à
xcaractères consécutifs.{x,}Correspond à au moins
xcaractères consécutifs (ou plus).{x,y}Correspond entre
xetycaractères consécutifs.