Retour à la liste

Expression régulière

Créé : 29.08.2012, 15:41:53  -  Modifié : 22.02.2018, 03:22:02

Une expression régulière (abrégé expreg), en anglais regular expression (abrégé regexp), est une chaine de caractère permettant de décrire un ensemble variable par l'utilisation d'une syntaxe précise. Cette chaine de caractères est appelée motif, en anglais pattern.

Voir Expression rationnelle.

La maîtrise de cette syntaxe vous permettra une manipulation de textes sans limite dans Notepad++ mais aussi dans la majeure partie des langages de programmation.

Distinguer les motifs et leurs résultats

Il faut bien saisir qu'un motif de recherche vise à chercher des résultats lui correspondant dans un texte, qui peuvent être remplacés selon un motif de remplacement :

  • Le motif de recherche décrit quoi chercher dans ce texte, par exemple ”mots commençant par un N”.
  • Les résultats de la recherche pourront alors être par exemple ”Nature, Nounours, Nord”.
  • Optionnellement, le motif de remplacement décrit par quoi remplacer chaque résultat.

Syntaxe du motif de recherche

Notepad++ (ou plus précisément sa composante Scintilla) ne prend en compte que la syntaxe de base des expressions régulières, mais permet déjà un très grand nombre d'opérations.

Les caractères

  • . : un point désigne n'importe quel caractère.
  • tout autre caractère, s'il ne fait pas parti de la syntaxe des expressions régulières, se désigne lui-même.

 

Les expressions régulières dans Notepad++ ne sont sensibles à la casse que si l'option de recherche Respecter la casse est activée.
Exemples
  • a.c désigne littéralement “la lettre a, puis n'importe quel caractère, puis la lettre c”. Cela pourrait être abc ou a:c mais pas 123.
  • .-5% désigne littéralement “n'importe quel caractère, un tiret, le chiffre 5 puis le symbole pourcent”. Cela pourrait être a-5% mais pas a-6% ou a5%.

Début et fin de ligne

  • ^ : l'accent circonflexe désigne le début d'une ligne.
  • $ : le dollar désigne la fin d'une ligne.
Exemples
  • ^a désigne “la lettre a en début de ligne”.
  • ^. désigne “n'importe quel caractère en début de ligne”.
  • a$ désigne “la lettre a en fin de ligne”.
  • ^a$ désigne “la lettre a seule sur une ligne”.

Les répétitions

  • * : une étoile indique que le symbole précédent est présent n'importe quel nombre de fois (même 0 fois, qu'il n'est donc pas présent).
  • + : un plus indique que le symbole précédent est présent au moins une fois.
Exemples
  • ab*c désigne littéralement “la lettre a, n'importe quel nombre de fois la lettre b, puis la lettre c”. Cela peut désigner ac, abc, abbbbbc
  • ab+c désigne littéralement “la lettre a, au moins une fois la lettre b, puis la lettre c”. Cela peut désigner abc, abbc, abbbbbc

Les ensembles

  • […] : un ensemble de caractères entre crochets désigne n'importe quel caractère présent dans cet ensemble.
  • [^…] : un ensemble entre crochets commençant par un accent circonflexe désigne n'importe quel caractère qui n'est pas présent dans cet ensemble.
  • […-…] : un tiret séparant deux caractères dans un ensemble désigne une plage de caractères.
Exemples
  • [abc7] désigne littéralement “les lettres minuscules a, b et c ou le chiffre 7”.
  • [^abc7] désigne littéralement “n'importe quel caractère à part les lettres minuscules a, b, c et le chiffre 7”.
  • [a-z] désigne littéralement “n'importe quelle lettre minuscule”.
  • [a-z0-9] désigne littéralement “n'importe quelle lettre minuscule ou n'importe quel chiffre”.

Les groupes

Exemples
  • a(bc)+ désigne littéralement “la lettre a puis au moins une fois le groupe de lettres ab”. Cela pourrait être abc, abcbc, abcbcbcbcbc

Échappement

Pour désigner un caractère qui est utilisé dans la syntaxe des expressions régulières, comme un crochet [, il faut l'échapper au moyen de l'antislash : \[

Exemples
  • a\[bc\] désigne littéralement “la lettre a, puis les lettres b et c entre crochets”. C'est à dire la chaine de caractères a[bc].
  • a[\bc] désigne littéralement “la lettre a, puis b ou c ou un antislash”. Cela pourrait être a\, ab ou ac.

Les mots

  • \< : désigne le début d'un mot.
  • \> : désigne la fin d'un mot.
  • \w : désigne un caractère d'un mot. Correspond à [a-zA-Z0-9_].
Exemples
  • \w+ désigne littéralement “un mot d'au moins une lettre”.

Syntaxe du motif de remplacement

  • Tout caractère se désigne lui-même.
  • \x : avec x un chiffre entre 1 et 9 (\1, \2, …) désigne le résultat d'un groupe du motif de recherche.
Exemples
  • Dans le motif de recherche a(bc), le motif de remplacement z\1 désigne la lettre z suivie du résultat du premier groupe, donc zbc.
  • Dans le motif de recherche (a(bc))(de), \1 désigne abc, \2 désigne bc et \3 désigne de.

 


Rendu :0.0727 | Mémoire :2.9MB

Accueil | Informations | Top