Table des matières

Expressions rationnelles

Cet utilitaire sous linux peut aider à générer des expressions rationnelles :

txt2regex

Pour l'installer :

apt-get install txt2regex

Quelques expressions régulières à connaître

N’importe quel caractère : .

N’importe lequel de cette liste de caractères : [abcd]

Tout caractère non compris dans la liste (autre que a, b, c ou d) : [^abcd]

Alternative, soit « blanc », soit « noir » : blanc|noir

Une ou N occurrence(s) de l’expression qui précède (N > 1) : +

Zéro ou N occurrence(s) de l’expression qui précède (N>0) : *

Groupement permettant l’utilisation des références inverses ($1,… $n) : ^

Délimiter une alternative comme dans (blanclnoir) : ^

Ancre de début de ligne : ^

Ancre de fin de ligne : $

Construire les expressions rationnelles

Les expressions régulières permettent de rechercher des occurrences (c'est-à-dire une suite de caractères correspondant à ce que l'on recherche) grâce à une série de caractères spéciaux. L'expression régulière en elle-même est donc une chaîne de caractère contenant des caractères spéciaux et des caractères standards…

Les symboles ^ et $ indiquent le début ou la fin d'une chaîne, et permettent donc de la délimiter.

"^debut": chaîne qui commence par "debut"
"fin$": chaîne qui se termine par "fin"
"^chaîne$": chaîne qui commence et se termine par "chaîne"
"abc": chaîne contenant la chaîne "abc"

Les symboles *, + et ?, respectivement “zero ou plusieurs”, “un ou plusieurs”, “un ou aucun”, permettent de donner une notions de nombre.

"abc+": chaîne qui contient "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...)
"abc*": chaîne qui contient "ab" suivie de zero ou plusieurs "c" ("ab", "abc" ...)
"abc?": chaîne qui contient "ab" suivie de zero ou un "c" ("ab" ou "abc")
"^abc+": chaîne commençant par "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...)

Les accolades {X,Y} permettent de donner des limites de nombre.

"abc{2}": chaîne qui contient "ab" suivie de deux "c" ("abcc")
"abc{2,}": chaîne qui contient "ab" suivie de deux "c" ou plus ("abcc" etc..)
"abc{2,4}": chaîne qui contient "ab" suivie 2, 3 ou 4 "c" ("abcc" .. "abcccc")

A noter que le premier nombre de la limite (“{0,2}”, mais pas “{,2}”) est obligatoire. Les symboles vu précedemment ('*', '+', and '?') sont équivalents à “{0,}”, “{1,}”, et “{0,1}”.

Les parenthèses ( ) permettent de représenter une séquence de caractères.

"a(bc)*": chaîne qui contient "a" suivie de zero "bc" ou plus

La barre verticale | se comporte en tant qu'opérateur OU

"un|le": chaîne qui contient "un" ou "le"
"(un|le) chien": chaîne qui contient "un chien" ou "le chien"
"(a|b)*": chaîne qui contient une suite de "a" ou de "b"

Le point . indique n'importe quel caractère (une fois)

"^.{3}$": chaîne qui contient 3 caractères

Les crochets [ ] définissent une liste de caractères autorisés (ou interdits). Le signe - permet quand à lui de définir un intervalle. Le caractère ^ après le premier crochet indique quand à lui une interdiction.

"[abc]": chaîne qui contient un "a", un "b", ou un "c"
"[a-z]": chaîne qui contient un caractère compris entre "a" et "z"
"^[a-zA-Z]": chaîne qui commence par une lettre
"^[^a-zA-Z]": chaîne qui ne commence pas par une lettre