« Programmation PHP/Expressions rationnelles » : différence entre les versions

Aller à la navigation Aller à la recherche
Déplacement dans le modèle
Aucun résumé des modifications
(Déplacement dans le modèle)
* <code>$1</code> : résultat du premier groupe de capture.
* <code>?:</code> : ignorer le groupe de capture lors de leur numérotation.
 
{| class="wikitable" border="1"
|+ Classe Prédéfinie en PHP
! Classe
! Signification
|----
|<nowiki>[[:alpha:]]</nowiki>
|n'importe quelle lettre
|-----
|<nowiki>[[:digit:]]</nowiki>
|n'importe quel chiffre
|-----
|<nowiki>[[:xdigit:]] </nowiki>
|caractères hexadécimaux
|-----
|<nowiki>[[:alnum:]]</nowiki>
|n'importe quelle lettre ou chiffre
|-----
|<nowiki>[[:space:]]</nowiki>
|n'importe quel espace blanc
|-----
|<nowiki>[[:punct:]]</nowiki>
|n'importe quel signe de ponctuation
|-----
|<nowiki>[[:lower:]] </nowiki>
|n'importe quelle lettre en minuscule
|-----
|<nowiki>[[:upper:]] </nowiki>
|n'importe quelle lettre capitale
|-----
|<nowiki>[[:blank:]]</nowiki>
|espace ou tabulation
|-----
|<nowiki>[[:graph:]] </nowiki>
|caractères affichables et imprimables
|-----
|<nowiki>[[:cntrl:]]</nowiki>
|caractères d'échappement
|-----
|<nowiki>[[:print:]]</nowiki>
|caractères imprimables exceptés ceux de contrôle
|}
 
En plus de ces classes prédéfinies, les propriétés Unicode sont aussi prédéfinies<ref>http://www.regular-expressions.info/unicode.html</ref>.
 
{{TODO|Exemples Unicode (/u).}}
 
S'ajoute à cela les combinaisons suivantes<ref>http://php.net/manual/en/function.preg-match.php</ref> :
<pre>
\A Début de chaine
\b Caractère de début ou fin de mot
\d Chiffre
\D Non chiffre
\s Caractères espace
\S Non caractères espace
\W Caractère qui n'est pas lettre, chiffre ou underscore
\w Lettre, chiffre ou underscore
\X Caractère Unicode
\z Fin de chaine
</pre>
 
{{attention|clear=left|En PHP, les patterns regex doivent toujours être entourés d'un symbole délimiteur. On utilise généralement l'accent grave (`), mais on trouve aussi souvent / et #. Ceci sous peine de ne pas fonctionner : ''Warning: no ending delimiter found''.}}
 
== Recherche ==
La fonction ''preg_match''<ref>http://php.net/manual/en/function.preg-match.php</ref> est la principale fonction de recherche<ref>http://php.net/manual/fr/ref.pcre.php</ref>. Elle renvoie un booléen et demande deux paramètres obligatoires : l'expression rationnelle et la chaine à scanner. Le troisième paramètre correspond à la variable dans laquelle stocker le tableau des résultats.
<source lang=PHP>
<?php

Menu de navigation