--- title: "Expressions régulières - Bases et utilisations fréquentes" slug: "expressions-regulieres-bases-et-syntaxes-frequentes" updated: 2022-11-12T22:27:15Z published: 2022-11-12T22:27:15Z canonical: "help.cooperlink.io/expressions-regulieres-bases-et-syntaxes-frequentes" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.cooperlink.io/llms.txt > Use this file to discover all available pages before exploring further. # Expressions régulières - Bases et syntaxes fréquentes ## Objet de l'article Cet article précise comme créer une expression régulière et il fournit les syntaxes les plus fréquentes. ## Références et test Le site Internet [https://regex101.com](https://regex101.com) fournit de nombreuses ressources et un outil puissant pour analyser en ligne vos expressions régulières. ## Bases des expressions régulières Un expression régulière est formée de symboles qui précisent les règles qui s'appliquent à l'extraction d'information dans une chaîne de caractère. ### Les caractères Les symboles suivants représentent un caractère : - **[a-c]** : un caractère alphabétique compris entre a et c, en minuscule / [A-C] : un caractère alphabétique compris entre A et C, en majuscule - **[a-zA-Z]** : un caractère alphabétique compris entre a et z, minuscule ou majuscule - **[0-5]** : un chiffre compris entre 0 et 5 - **[^a-z]** : le chapeau ^ est un opérateur d'inversion. Cela signifique que le caractère est tout sauf compris entre a et z, minuscule - **[-_]** : un caractère soit tiret, soit tiret-bas (underscore) - **Le point** représente n'importe quel caractère ### Les répétitions Les symboles suivants précisent les règles de répétitions des caractères : - **a*** : l'astérique permet un nombre illimité de répétition du caractère a - **a+** : vérifie la présence de un ou plusieurs caractères a - **a?** : vérifie la présence de zéro ou un caractère a - **(...)?** : vérifie la présence d'aucun ou un groupe de capture - **a{3} ou a{3,3}** : exactement trois répétitions du caractère a - **[a-zA-Z]{3,1}** : trois répétitions ou plus des caractères compris entre a et z, minuscule ou majuscule. - **[0-1]{3,6}** : entre trois et six répétitions d'un chiffre compris entre 0 et 1 ### Les conditions - **^** : placé en début d'expression, il indique le début de la chaîne. Cela signifie qu'il oblige l'expression à évaluer avec succès à partir du premier caractère. - **$** : placé en fin d'expression, il indique la fin de la chaîne. Cela signifie qu'il oblige l'expression à évaluer avec succès jusqu'au dernier caractère. - **(...)** : les parenthèses permettent de créer un groupe de capture d'expression - **(?:...)** : capture tout ce qui fait partie du groupe - **(?...)** : groupe de capture d'expression nommé. Dans Cooperlink, l'utilisation de la clé d'un champ permet son identification au champ concerné. ## Exemple ### Nom de fichier de type *[code]-[titre]-[indice]* Décodons l'expression régulière suivante ayant la structure [CODE]-[TITRE]-[INDICE] : ```none DEMO[-_](?[a-zA-Z]{2,2})[_-](?[a-zA-Z]{2,2})[_-](?[a-zA-Z]{4,4})[_-](?[0-9]{3,3})-(?.*?)(?:[_-](?<demo_en_revision_number>[a-zA-Z]))?$ ``` La chaine de caractère est évaluée comme suit : - Elle doit commencer par DEMO - Suivi ensuite d'un tiret ou tiret-bas (underscore) - Les caractères suivants doivent être alphabétiques, au nombre de 2, minuscule ou majuscule. Ces 2 lettres seront capturées dans le groupe **demo_en_document_status**. Au sein de Cooperlink, en cas de liste de valeurs, le code de 2 caractères extrait doit être une des valeurs encodée dans la configuration du champ. - Suivi ensuite d'un tiret ou tiret-bas (underscore) - Les caractères suivants doivent être alphabétiques, au nombre de 2, minuscule ou majuscule (groupe **demo_en_type**). - Suivi ensuite d'un tiret ou tiret-bas (underscore) - Les caractères suivants doivent être alphabétiques, au nombre de 4, minuscule ou majuscule (groupe **demo_en_package**). - Suivi ensuite d'un tiret ou tiret-bas (underscore) - Les caractères suivants doivent être numériques, au nombre de 3 (groupe **demo_en_number**) - Suivi ensuite d'un tiret - Une chaîne de caractère indéterminée est ensuite capturée dans un groupe **title**. L'astérisque permet de garantie l'évaluation positive de l'expression jusqu'au dernier caractère suite à la présence du caractère $ en fin de chaîne. - Un caractère alphabétique unique, minuscule ou majuscule, est optionnellement présent en fin de chaîne, et précédé d'un tiret ou d'un tiret-bas (underscore). Celui-ci est capturé comme indice de révision dans le groupe **demo_en_revision_number**. ### Extrait de regex101 ![](https://cdn.document360.io/c21b52e3-341e-4ea9-8692-3488bd21cd8d/Images/Documentation/image-1668290923363.png)