Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

Aide-mémoire des regex / regexp


Voici un rapide survol des métacaractères, des classes, intervalles de reconnaissance, etc...

Les métacaractères / ancres
  • ^ accent circonflexe
    marque le début d'une chaîne(voir classe aussi)
  • $ dollar
    marque la fin d'une chaîne

Memo:
^chat$  reconnaît chat seul
^$  reconnaît chaîne vide
^  début de chaîne
$  fin de chaîne


L'alternative
  • | barre verticale
    marque l'alternative
Memo:
L[y|i]s  reconnaît Lys ou Lis
^(De|Sujet|Date):@  reconnaît tout ce qui commence par De:@ ou Sujet:@ ou Date:@


Les quantificateurs
  • ? point d'interrogation
    Facultatif
    zéro ou une occurrence
  • * étoile
    Facultatif
    zéro, une ou plusieurs occurrences
  • + signe plus
    Obligatoire
    une ou plusieurs occurrences
  • {x}accolade + nombre
    Obligatoire restrictif
    doit apparaître exactement x fois
  • {x,}accolade + nombre
    Obligatoire non restrictif
    doit apparaître au moins x fois
  • {x,y}accolade + nombre
    Obligatoire restrictif
    doit apparaître exactement x fois et maximum y fois

Memo:
a?  reconnaît 0 ou 1 a
a*  reconnaît 0 ou plusieurs a
a+  reconnaît 1 ou plusieurs a
Les classes de caractères
  • [ ] les crochets
    indique une classe
  • - le tiret
    indique l'intervalle dans une classe
Memo:
[a-z]  reconnaît les lettres de a à z
[Yy]ves  un mot avec ou sans majuscule
<h[1-6]>  une balise de titre par exemple

La classe complémentée
  • [^... ] au lieu de [...]
    indique une classe complémentée
    reconnaît tout caractère qui n'est pas énuméré
Memo:
[^0-9]  reconnaît tout ce qui n'est pas des chiffres
[^1-6]  reconnaît tout sauf les chiffres de 1 à 6
Rappel : l'accent circonflexe est un métacaratère à l'intérieur de la classe. A l'extérieur, c'est une ancre qui signifie le début de...

Le tiret
  • - indique un intervalle dans une classe [0-9]

    Rappel: Le tiret est un métacaractère à l'intérieur d'une classe à condition qui exprime bien un intervalle.
    Pour utiliser le tiret en tant que littéral à l'intérieur d'une classe, soit le placer au début, soit en fin de classe [-0-9] ou [0-9-]
    A l'extérieur d'une classe le tiret est un caractère normal.

Les parenthèses
  • ( ) encadrer les instructions
    capture de sous-chaînes

    Rappel:les parenthèses en dehors de leur fonction d'encadrer les instructions, permettent la capture de la partie de sous-chaîne définie et satisfaisant le motif.
ADAM Benjamin 2008 | Admin