Centre d‘Information

Expressions Régulières

Dans des logiciels tels que le Text Converter, vous pouvez effectuer certaines tâches à l’aide d’expressions régulières, ce qui augmente considérablement les possibilités d’utilisation de tels programmes. Pour travailler avec des expressions régulières, vous devez connaître quelques notions de base, qui sont résumées sur cette page.

Cet article est divisé en sections suivantes auxquelles vous pouvez accéder directement:

Qu’est-ce qu’une Expression Régulière?

L’application d’une expression régulière correspond à une recherche, qui peut être plus générale qu’une recherche normale. Par exemple, si vous recherchez "A" dans un texte normal, vous pouvez trouver tous les endroits où exactement "A" est produit. Mais que faire si vous voulez trouver tous les endroits qui ont des lettres majuscules? Vous pouvez rechercher "A", "B", "C", etc. Ou vous pouvez utiliser des expressions régulières. L’expression régulière courte [A-Z] est identique à la recherche de chacun des caractères de A à Z. Vous pouvez le faire aussi précisément que vous le souhaitez. Vous pouvez rechercher une date, une adresse e-mail ou tout ce que vous voulez. Comment le faire va apprendre dans cette compilation.

Les domaines d’application sont, par exemple, les programmes d’édition de texte, tels que le Text Converter, avec lesquels il est possible de supprimer ou de remplacer des textes à l’aide d’expressions régulières ou d’utiliser les textes trouvés pour les utiliser dans un autre contexte ou une autre position. Par exemple, vous pouvez modifier le format d’une date ou convertir toute adresse électronique d’un texte en lien. Une recherche normale devait connaître toutes les adresses électroniques possibles pour cela, ce qui est impossible.

Les Bases

Dans ce tableau, vous pouvez trouver les conventions et les caractères les plus importants, ainsi que leur signification. Les 11 caractères [ ] ( ) { } | ? + - * ^ $ \ et . sont des métacaractères et ont une signification spéciale dans les expressions régulières, comme expliqué dans les sections suivantes. Si vous souhaitez utiliser un de ces caractères comme ce caractère dans une expression régulière, vous pouvez utiliser un \ avant du caractère pour échapper au caractère de sa signification en tant que méta-caractère. Tous les autres caractères peuvent être utilisés dans une expression régulière en tant que tels.

Expression Régulière Signification et Exemple
a L’expression régulière "a" correspond également à "a". Tant que le caractère n’est pas un méta-caractère avec une autre signification, il peut être utilisé directement dans l’expression régulière.
Exemple: abc defg abcdefgbafcgbde 0123456789
[abc] Les crochets [ et ] peuvent être utilisés pour définir un groupe de caractères. L’exemple trouve l’un des caractères a, b ou c.
Exemple: abc defg abcdefgbafcgbde 0123456789
[a-f]Le trait d’union -  peut être utilisé pour définir une plage de caractères. L’exemple trouve l’un des caractères a, b, c, d, e ou f. Dans cet exemple également, l’expression régulière ne correspond qu’à un caractère.
Exemple: abc defg abcdefgbafcgbde 0123456789
[0-9]Le trait d’union peut également être utilisé pour définir une plage de nombres. L’exemple trouve les nombres 0 à 9.
Exemple: abc defg abcdefgbafcgbde 0123456789
[A-Z0-9abc] Dans un groupe de caractères, des plages et des caractères simples peuvent être utilisés. Dans l’exemple, le groupe est constitué des lettres majuscules A à Z, des chiffres de 0 à 9 ainsi que des lettres minuscules a, b et c.
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
[^a]Avec le méta caractère ^ au début d’un groupe de caractères, le groupe de caractères est annulé. Cela signifie que l’exemple correspondra à n’importe quel caractère mais pas à una a.
Exemple: abc defg abcdefgbafcgbde 0123456789
^aSi le méta-caractère ^ n’est pas inclus dans un groupe de caractères, il représente le début d’une chaîne ou d’une ligne. L’exemple correspondrait à toutes les lignes ou chaînes commençant par a.
Exemple: abc defg abcdefgbafcgbde 0123456789
a$Tout comme le métacaractère ^ représente le début d’une chaîne ou d’une ligne, le caractère $ représente sa fin. Donc, toutes les chaînes se terminant par un a seraient trouvées.
Exemple: abc defg abcdefgbafcgbde 0123456789a
^abc$ Ici, les méta-caractères ^ et $ sont utilisés ensemble. Cet exemple correspond à toutes les chaînes ou lignes égales à "abc".
Example 1: abc
Example 2: abc abc
\b Représente la position au début ou à la fin d’un mot.
\BReprésente une position qui n’est pas au début ou à la fin d’un mot.
\babc\bTrouve le seul mot "abc", mais pas la chaîne "abc", lorsqu'il est entouré par d'autres caractères.
Exemple: abc abcde abc deabcde deabc abc
\babc Trouve tous les mots commençant par "abc".
Exemple: abc abcde abc deabcde deabc abc
abc\b Trouve tous les mots finissant par "abc".
Exemple: abc abcde abc deabcde deabc abc
\Babc\BTrouve tous les mots contenant "abc", mais ne commençant ni ne finissant par "abc".
Exemple: abc abcde abc deabcde deabc abc
abc\B Trouve tous les mots contenant "abc", mais ne finissant pas par "abc".
Exemple: abc abcde abc deabcde deabc abc
ABC|abc Le caractère | représente une alternative. Ce regex trouve "ABC" et "abc".
Exemple: abcde ABCDE fgabcde FGABCDE
[a\-f]S’il y a un \ devant un méta-caractère, la signification de ce méta-caractère est échappée. Dans ce cas, le méta-caractère ne représente pas une plage, mais est utilisé comme propre caractère. Ainsi, l’exemple correspond aux caractères a, f et -. En d’autres termes, avec le caractère \, il est possible d’ajouter des méta-caractères à des groupes de caractères.
Exemple: abcdefg abcdefgh -
1\+1=2Cette expression régulière correspond à la chaîne 1+1=2. De nouveau, le méta-caractère + est échappé avec \.
Exemple: 1+1=2 1\+1=2
[-af]Chaque fois qu’un méta-caractère est dans un groupe de caractères à une position sans signification, il est utilisé comme un caractère normal. L’exemple correspond aux caractères -, a et f.
Exemple: abcdefg abcdefgh -
[af-]La même chose s’applique à un - à la fin d’un groupe..
Exemple: abcdefg abcdefgh -
ab[cd] Dans cet exemple, un caractère d’un groupe de caractères est combiné avec "ab". Ainsi, l’exemple correspond aux chaînes "abc" et "abd".
Exemple: abcdef abdef cdabcd cdabdc
.Le point représente un caractère arbitraire. Chaque caractère sera trouvé avec cette expression régulière. Cela dépend du modificateur, si les sauts de ligne sont inclus.
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
.abCorrespond à toute chaîne comportant trois caractères dont les deux derniers sont a et b, par exemple aab, eab, %ab, :ab, etc.
Exemple: abc dfgabc &ab fgxab
[^a]ab Trouve les mêmes chaînes que l’expression régulière ".ab", à l’exception de la chaîne "aab".
Exemple: aab cab dd dab fg &ab

Si vous souhaitez tester une expression régulière introduite sur cette page, vous pouvez utiliser le logiciel Text Converter pour cela. Ouvrez simplement un fichier texte arbitraire dans cet outil et cliquez sur Rechercher et Remplacer dans la colonne la plus à droite. Ici, vous pouvez activer des expressions régulières dans le champ de recherche. Après cela, vous pouvez taper une expression régulière pour tester son fonctionnement.

Répétitions

Pour décrire des situations dans lesquelles il y a des répétitions de caractères ou de classes de caractères entières, vous pouvez utiliser certains des méta-caractères suivants.

Expression RégulièreSignification et Exemple
ab{2} L’élément précédent doit apparaître exactement deux fois. Dans cet exemple, cela correspond uniquement à abb. Le a n’est pas ajouté avec un crochet à une classe avec le b, de sorte que l’expression répétée n’a d’incidence que sur le b et non sur le a.
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab{2,3} L’élément précédent doit apparaître au moins deux fois et au maximum trois fois. Cette expression régulière correspondrait à abb, abbb, mais pas ab ou abbbb.
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab{2,}L’élément précédent doit apparaître au moins deux fois. L’exemple correspondrait à abb, abbb, abbbb et ainsi de suite. 
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab{,3} L’élément précédent ne doit pas apparaître plus de trois fois. L’exemple correspondrait à abbb et abbbb mais pas à abbbbb. 
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab?Le point d’interrogation indique que le caractère précédent est facultatif. Cela signifie que l'élément précédent peut apparaître, mais ne doit pas nécessairement apparaître. L’exemple trouverait a et ab. Le point d’interrogation correspond à l’expression {0,1}. 
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab+Le plus indique que l’élément précédent doit apparaître au moins une fois, mais aussi plusieurs fois. L’exemple correspondrait à ab, abb, abbb et ainsi de suite, mais pas a. Le plus est le même que l’experssion {1,}. 
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
ab*Le caractère * signifie que le caractère précédent doit apparaître zéro ou plusieurs fois. C’est la même chose que l’expression {0,}.
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
[ab]+Cet exemple trouve des chaînes de caractères comme a, b, ab, ba, abb, ababa ainsi de suite. Cela ne signifie pas que le même caractère précédent doit être répété. Cela signifie que les caractères du groupe doivent être répétés. Si vous souhaitez trouver des répétitions du même caractère, vous devez utiliser des références arrières. L’expression régulière serait ([ab])\1+ et est expliquée ci-dessous. 
Exemple: a ab abb babb abbb abbbb babbbbbbbbbbd
a[bc]+dCette expression trouve des chaînes telles que abd, acd, abcd, acbd, abccbd, acbcbcbd ainsi de suite. 
Exemple: abcd aad acbd fg abbccbbcd fg abd fg acd
[0-9]{2,3} Aussi dans cet exemple, il n’est pas nécessaire que les mêmes chiffres soient répétés. L’expression correspond à tous les nombres avec deux ou trois chiffres, donc les nombres de 10 à 999. Des chaînes comme 1,2 ne seront pas trouvées par cette expression. 
Exemple: 1,4 10 89 ab3a ab42a 234

Classes de Caractères

Derrière la création de groupes de caractères entre crochets, il existe également des classes de caractères prédéfinies. Avec cette classe, les expressions régulières deviennent plus courtes et plus claires.

Expression RégulièreSignification et Exemple
\dCette expression représente un chiffre (Digit), elle est donc équivalente à [0-9].
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
\DCette expression représente un caractère qui n’est pas un chiffre. Cela correspondrait à [^0-9] ou [^\d].
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
\wCette expression (word) représente une lettre, un chiffre ou un trait de soulignement. Par conséquent, \w correspond à la classe de caractères [A-Za-z0-9_].
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
\WCette expression représente tout caractère qui n’est ni chiffre, ni lettre et ni trait de soulignement. C’est la même chose que [^\w] ou [^A-Za-z0-9_].
Exemple: abc defg abcdefgbafcgbde 0123456789 -&
\sCette expression correspond à whitespace, par exemple un saut de ligne, une tabulation, un espace, etc.
\SCette expression représente tout caractère qui n’est pas un caractère de whitespace, c’est la même chose que [^s]. 

Regroupement et Références Arrières

Avec les parenthèses ( et ), vous pouvez regrouper certains caractères, par exemple, pour appliquer un opérateur à l’ensemble du groupe. De plus, avec les parenthèses, vous pouvez créer des références arrières. Cela signifie que les caractères trouvés dans cette parenthèse seront stockés,  afin que vous pouvez les réutiliser dans la même expression régulière ou dans l’expression de remplacement, lorsque vous recherchez et remplacez par des expressions régulières. Les exemples montrent certaines des possibilités que vous devriez tester dans un programme tel que Text Converter pour avoir une idée de ces expressions.

Expression RégulièreSignification et Exemple
(ab)+ Le groupe entier "ab" est répété, une ou plusieurs répétitions de "ab" seront trouvées. 
Exemple: abcde ababcde ababababa
ab(cd|ef|gh)i Dans les parenthèses, il y a quelques alternatives. Cet exemple correspond a les chaînes "abcdi", "abefi" et "abghi", mais pas d’autres chaînes. 
Exemple: abcdifg abcdefghi abghi
([ab])\1+ Ici, la référence arrière \1 est utilisée. Chaque parenthèse crée une telle référence, le 1 correspondant au première parenthèse de l’expression. L’expression signifie que la lettre trouvée dans le groupe [ab] doit être répétée une ou plusieurs fois après le groupe. Par conséquent, cette expression correspond à "aa", "bb", "aaa", "bbb" et ainsi de suite. 
Exemple: aaaacd efbbbbbbbbghab
([ab])x\1x\1 La référence peut également être utilisée plusieurs fois. Cette expression correspond à "axaxa" et "bxbxb".
Exemple: axaxa axax bxbxb axbxa
([ab])x(c)x\1x\2 Dans cette expression, deux références \1 et \2 sont utilisées, qui correspondent aux premier et deuxième parenthèses. Les chaînes "axcxaxc" et "bxcxbxc" correspondront à cette expression. 
Exemple: axcxaxc axax bxcxbxc axbxa
([ab])x(c)x\2x\2 Il n’est pas nécessaire d’utiliser chacune des références résultant des parenthèses dans l’expression. Ici, seule la deuxième référence est utilisée. 
Exemple: axcxcxc axax bxcxcxc axbxa
(\d+\.)(\d+\.) Les références ne peuvent pas uniquement être utilisées dans une seule expression régulière. Avec le Text Converter, vous pouvez rechercher une chaîne avec une expression régulière et la remplacer en utilisant des références telles que $1, $2, etc. Si vous tapez l’exemple dans le champ de recherche et que vous le remplacez par $2$1, la date trouvée sera inversée. Veuillez noter que vous devez activer les expressions régulières pour la recherche et remplacer les cases situées sous les cases. 
Exemple: "11.04." will replaced by "04.11."
\ba\b\s\b([aoeiu][a-z]+)\b Avec cette expression régulière, vous pouvez trouver tous les mots simples "a" suivis d’un autre mot commençant par a, o, e, i ou u. En anglais, il n’est pas permis d’écrire un "a" devant un mot commençant par une voyelle. Vous pouvez utiliser l’expression régulière "an $1" dans le Text Converter pour corriger cette erreur. 
Exemple: "a idea" sera remplacé par "an idea"

Modificateurs

Le comportement des expressions régulières peut être modifié par des modificateurs. Si vous souhaitez modifier ces modificateurs dans le Text Converter en général, vous pouvez accéder au menu "Settings > Settings regarding regular Expressions (RegEx)", où tous les modificateurs peuvent être modifiés. Cependant, il est également possible d’appliquer différents modificateurs pour une seul expression ou même d’appliquer des modificateurs uniquement sur une partie d’une expression. Comment cela fonctionne, vous apprendrez dans la deuxième partie de cette section. Les modificateurs suivants peuvent être modifiés dans le Text Converter:

Si un modificateur ne doit être utilisé que pour une seule expression régulière ou même pour une partie d’une expression régulière, vous pouvez utiliser les méthodes suivantes pour modifier les modificateurs. Les modificateurs mentionnés ci-dessus sont nommés par leurs lettres, ce qui signifie que les lettres i, m, s, g ou x doivent être utilisées.

Expression RégulièreSignification et Exemple
(?i)[abc] Dans cet exemple, vous pouvez voir comment activer un modificateur. Dans cet exemple, le modificateur i pour l’insensibilité à la casse est activé.
Exemple: abcdef ABCDEF
(?i)[a](?-i)[cd] En utilisant (?-I), un modificateur est désactivé. Dans l’exemple, le modificateur i est d’abord activé, les lettres a et A seront trouvées. Après que le modificateur i soit désactivé,c et d doivent être en minuscules pour correspondre à cette expression.
Exemple: ac Ac AC ad Ad AD
((?i)[a])[cd] Avec les parenthèses, vous pouvez atteindre les mêmes résultats. Bien sûr, i doit être désactivé en général dans cet exemple.
Exemple: ac Ac AC ad Ad AD
(?ig-msx)[abc] Si vous souhaitez modifier plusieurs modificateurs en même temps, vous pouvez également le faire dans une seule expression. D’autres possibilités sont (?ims) d’activer certains modificateurs ou (?-ims) de désactiver un certain nombre de modificateurs.

Unicode

Il est souvent demandé si et comment utiliser des caractères Unicode dans des expressions régulières. Par exemple, des caractères chinois ou des lettres de l’alphabet cyrillique ou grec. À l’origine, les expressions régulières n’étaient utilisées que pour les caractères ANSI et de nombreux programmes utilisant des expressions régulières ne prennent toujours en charge que la plage de caractères ANSI. Toutefois, cela ne s’applique pas au Text Converter. Dans ce logiciel, vous pouvez utiliser des caractères Unicode arbitraires de la même manière, à la manière dont vous utilisez les caractères ANSI. Les exemples suivants montrent cela fonctionne et comment vous pouvez utiliser des caractères Unicode.

Expression RégulièreSignification et Exemple
[Д-И] Dans le Text Converter, vous pouvez utiliser des caractères Unicode de la même manière que vous utilisez des caractères ASCII. L’exemple utilise la plage Д à И de l’alphabet cyrillique dans un groupe de caractères.
Exemple: АБВГДЕЖЗИКЛ
Caractères spéciaux arbitraires que vous pouvez utiliser comme dans cet exemple. Voici le caractère pour l’infini.
Exemple:
\x{221E} Alternativement, vous pouvez également utiliser le code HEX de Unicode pour un caractère. Ce code est 221E pour le symbole infini et il est utilisé comme l’expression régulière dans l’exemple.
Exemple:
\x41 Toujours dans la plage ASCII, vous pouvez utiliser le code HEX au lieu du caractère. Cela est particulièrement utile lorsque vous notez des tabulations ou d’autres caractères qui ne peuvent pas être écrits directement. Dans l’exemple, le code hexadécimal de A (code 41) est affiché. Une table avec tous les codes HEX, vous pouvez obtenir dans cette table ASCII.
Exemple: ABC ABCABC
[\x{0001}-\x{221E}] Les caractères définis avec le code HEX de cette manière peuvent être utilisés comme n’importe quel autre caractère dans la syntaxe des expressions régulières. Dans l’exemple, un groupe de caractères est défini. Cet intervalle comprend tous les caractères jusqu’au code du symbole de l’infini. Cela inclut les caractères latins, grecs et cyrilliques, mais pas les caractères japonais.
Exemple: ABCGHJΔΨΩБВГДЕЖカモヤモ

Exemples

Avec les connaissances écrites sur cette page, vous pouvez écrire vous-même des expressions régulières arbitraires en combinant les règles à votre manière. Par exemple, l’expression régulière suivante sera analysée. Cette expression régulière peut être utilisée pour trouver une adresse électronique quelconque dans n’importe quel texte:

\b[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b

Comme vous pouvez le constater, l’expression régulière est arrondie par \b. Cela signifie que l’adresse e-mail doit être un mot unique et non arrondi par d’autres caractères du texte. La structure d’une adresse de messagerie est nom@domaine.fin. Comme vous pouvez le voir dans l’expression régulière, il y a un groupe de caractères avant le @, dans lequel les caractères doivent être répétés au moins une fois (+). Ce groupe de caractères correspond à l’élément "nom" de l’adresse de messagerie. Après le @, il y a deux autres groupes de caractères. Un pour le domaine et un pour la fin. Ces groupes sont divisés par un point. Comme le point est un métacaractère dans les expressions régulières, il a été transformé en caractère normal par utilisant \. Le groupe de caractères du domaine peut contenir un nombre arbitraire de caractères, mais au moins un caractère (+) et le groupe de caractères du suffixe de domaine doivent contenir au moins 2 et au plus 4 caractères. Ceci est indiqué par {2,4} derrière le groupe de caractères.

Avec l’expression régulière dans l’exemple, vous trouverez des adresses électroniques dans des textes. Mais comment pouvez-vous travailler avec cette expression régulière? Par exemple, dans un programme tel que Text Converter, vous pouvez utiliser l’expression pour rechercher et remplacer des textes. Allez simplement à l’action "Remplacer le texte" et activez les expressions régulières sous la case pour le terme de recherche ou de remplacement. Si vous utilisez notre exemple, vous pouvez entrer un texte qui remplacera l’adresse e-mail. Là encore, une expression régulière peut être utilisée. Par exemple, vous pouvez utiliser les expressions régulières suivantes:

Terme de Recherche: (\b[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b)
Remplacer par: <a href="mailto:$1">$1</a>

Avec cela, l’adresse e-mail trouvée sera réécrite sous forme de lien. Cependant, l’expression dans le champ de recherche doit d’abord être entourée de parenthèses. Vous ne pouvez réutiliser que les textes trouvés à partir du champ de recherche dans le champ de remplacement si vous entourez le texte correspondant entre parenthèses. Les parenthèses peuvent inclure des parties arbitraires du terme recherché. Cela rend plusieurs autres choses possibles. Par exemple, nous pouvons essayer la combinaison suivante:

Terme de Recherche: .*(\b[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b).*
Remplacer par: $1

Avec cela, vous recherchez une adresse e-mail pouvant contenir d’autres caractères (.*). Ainsi, tout le texte, y compris l’adresse électronique, sera trouvé. Mais il ne sera remplacé que par la chaîne trouvée par le terme entre parenthèses, c’est-à-dire le courrier électronique. Vous pouvez donc extraire une adresse électronique d’un texte avec cette expression régulière.

Si vous utilisez plusieurs parenthèses dans votre terme de recherche, vous pouvez cibler et réutiliser les différentes sections avec $1, $2, $3, etc. Un exemple:

Terme de Recherche: (.*)chercher(.*)
Remplacer par: $1remplacer$2

En este ejemplo, estamos buscando el texto delante y detrás de la cadena "buscar". Tout cela sera remplacé par le texte devant et derrière le mot "recherche" et le mot "remplacer" sera écrit entre ces textes. Cette expression régulière fait quelque chose, qui peut être réalisée beaucoup plus facilement. L’expression remplace uniquement le mot "chercher" par "remplacer". Mais si vous modifiez un peu cette expression, vous pouvez par exemple rechercher différentes orthographes d’un mot ou créer d’autres modèles de recherche beaucoup plus compliqués.

Service d’Expression Régulière

Besoin d’aide pour créer une expression régulière? Nous sommes heureux d’aider. Il suffit de nous écrire via notre formulaire de contact.

Logiciel pour les expressions régulières

Si vous souhaitez utiliser les expression régulières introduite sur cette page pour travailler sur des fichiers texte, vous pouvez utiliser le logiciel Text Converter pour cette tâche. Le Text Converter permet de rechercher des fichiers texte en fonction d’expressions régulières, de remplacer des expressions régulières par d’autres textes ou d’autres expressions, de supprimer certaines parties du texte à l’aide d’expressions régulières ou de séparer les fichiers texte en la position trouvée pour enregistrer les fichiers en tant que fichiers uniques. Bien entendu, avec ce programme, il est également possible d’utiliser des pièces appariées dans un autre contexte ou dans un autre ordre (références arrières).

Le Easy MP3 Player est un autre programme avec lequel il est possible de rechercher dans votre collection de musique avec des expressions régulières afin de pouvoir transformer des recherches très précises.

Voici une liste de programmes dans lesquels vous pouvez utiliser des expressions régulières:

Note Importante

Ce texte sur les expressions régulières a été écrit par Stefan Trost et il est interdit d’utiliser ce texte (même en partie) dans un autre contexte sans l’autorisation de Stefan Trost.