-->

  

  CasaBook    

12/10/2010

Les expressions régulières en php:


Aide-mémoire des expressions régulières ( regex / regexp ):

Voici un rapide mémoire des métacaractères, des classes, intervalles de reconnaissance utilisés dans les expressions régulière dans php et dans d'autres langages de programmation:

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'alternativeMemo:

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 occurence

* étoile

Facultatif

zéro, une ou plusieurs occurences

+ signe plus

Obligatoire

une ou plusieurs occurences

{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 restrictf

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:

[a-z] reconnaît les lettres de a à z

[Yy]ves un mot avec ou sans majuscule

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 lité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 motf.

Aucun commentaire: