Beruflich Dokumente
Kultur Dokumente
Page 1 sur 5
Accueil
Cours
8 semaines Facile
Licence
Annexes
Devenez
Premium
Cette annexe va tre utile ceux qui ont lu les deux chapitres sur les expressions rgulires. Il s'agit d'un mmento, c'est-1. Envoyez votre site sur le web
dire d'un rsum qui vous sera utile lorsque vous crirez vos propres regex.
2. Codez proprement
Rfrez-vous cette annexe ds que vous vous apprtez crire une expression rgulire. Elle vous servira de support pour
3. Utilisez la documentation PHP!
vous rappeler toutes les possibilits des regex.
4. Au secours! Mon script plante!
Protger un dossier avec un .htaccess
Cette annexe n'est PAS faite pour apprendre se servir des regex.6.5.Si vous
voulez
apprendre,
allez
voir les chapitres
Mmento
des
expressions
rgulires
correspondants dans ce cours.
au forum
Ici, les explications sont succinctes car le but est de synthtiser au maximum tout ce qu'ilAccder
y a savoir
sur les regex.
Cr par
Explication
http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/mem...
14/12/2014
regex
Page 2 sur 5
Explication
#guitare#
#guitare|piano#
#^guitare#
#guitare$#
#^guitare$#
Classes de caractres
Le tableau qui suit prsente le mode d'emploi des classes de caractres.
regex
Explication
#gr[ioa]s#
[a-z]
Caractres minuscules de a z.
[0-9]
Chiffres de 0 9.
[a-e0-9]
Lettres de a e ou chiffres de 0 9.
[0-57A-Za-z.-]
#[^0-9]#
#^[^0-9]#
Quantificateurs
Le tableau ci-aprs prsente les diffrents quantificateurs qui existent.
regex
Explication
#a?#
#a+#
#a*#
#bor?is#
bois ou boris.
#Ay(ay|oy)*#
#a{3}#
#a{3,5}#
http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/mem...
14/12/2014
regex
Page 3 sur 5
Explication
a doit apparatre au moins 3 fois (aaa, aaaa, aaaaa, aaaaaa, etc.).
#a{3,}#
Mtacaractres
Les mtacaractres sont:
# ! ^ $ ( ) [ ] { } | ? + * .
Pour utiliser un mtacaractre dans une recherche, il faut l'chapper avec un antislash: \.
regex
Explication
#Hein?#
#Hein\?#
Cherche Hein?.
Les mtacaractres n'ont pas besoin d'tre chapps dans une classe, sauf pour # (symbole de fin de la regex),
] (symbole de la fin de la classe) et \ (si votre classe recherche un antislash) que l'on doit faire prcder d'un antislash.
Si on veut rechercher un tiret dans une classe de caractres, il faut le placer au dbut ou la fin de la classe: [a-zA-Z0-9].
Classes abrges
Les classes abrges sont supportes uniquement par les regex PCRE.
Classe abrge
Correspondance
\d
[0-9]
\D
[^0-9]
\w
[a-zA-Z0-9_]
\W
[^a-zA-Z0-9_]
\t
Tabulation
\n
Saut de ligne
\r
Retour chariot
\s
\S
Classe universelle
http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/mem...
14/12/2014
Page 4 sur 5
Capture et remplacement
En utilisant la fonction preg_replace on peut automatiquement faire des remplacements l'aide de regex.
1 <?php
2 $texte = preg_replace('#\[b\](.+)\[/b\]#i', '<strong>$1</strong>', $texte);
3 ?>
Les parenthses servent entourer un bout de la regex pour crer des variables $1, $2, $3, etc. qui seront utiles pour
faire le remplacement.
Il peut y avoir jusqu' 99 parenthses capturantes, donc jusqu' $99.
(?:texte) est une parenthse non capturante: elle ne cre pas de variable.
Une variable $0 est toujours cre et correspond l'ensemble de la regex.
Ainsi, la regex suivante
#(anti)co(?:nsti)(tu(tion)nelle)ment#
cre les variables suivantes:
$0: anticonstitutionnellement;
$1: anti;
$2: tutionnelle;
$3: tion.
Options
Il existe de nombreuses options que l'on peut utiliser avec les regex PCRE.
Parmi les trois que nous sommes le plus souvent amens utiliser, il y a:
i: la regex ne fera plus la diffrence entre majuscules/minuscules;
s: le point (classe universelle) fonctionnera aussi pour les retours la ligne (\n);
U: mode Ungreedy (pas gourmand). Utilis pour que la regex s'arrte le plus tt possible. Pratique par exemple
pour le bbCode [b][/b]: la regex s'arrtera la premire occurrence de [/b].
L'auteur
Mathieu Nebra
Entrepreneur plein temps, auteur plein temps et co-fondateur d'OpenClassrooms :o)
http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/mem...
14/12/2014
Page 5 sur 5
Premium
Premium
eBook
Livre papier
Vido
5 choses faire
aujourd'hui
Recommand par
2 585 visiteurs en ligne Un visiteur sur cette page ! 7 995 565 messages sur le forum
Youtube
Roadmap
Nous recrutons
Qui sommes-nous?
Publicit
Blog
Nous contacter
http://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/mem...
14/12/2014