23 octobre 2009

Les Expressions régulières en PHP

Les Expressions régulières en PHPExpressions régulières ?

Les Expressions régulières (regex ou encore regexp) sont un moyen de manipuler le contenu d’une chaîne de caractères.

Construction d’une expression régulière :

Voici un tableau recensant les différents caractères utilisés

^ début de la chaîne
$ fin de la chaîne
. n’importe quel caractère
? un ou aucun
+ un ou plusieurs
* zéro ou plusieurs
| ou
- intervalle
() séquence de caractères
[] liste de caractères
{min, max} Limite de nombre
\d un chiffre
\D pas de chiffre
\w les caractères
\W pas de caractère
\s un espace

Quelques exemples concrets :

Pour vérifier qu’une chaîne est présente dans une chaîne :

$sString = 'hello world';
if( preg_match( '/hello/', $sString ) )
    echo 'Trouvé';
else
    echo 'Non trouvé';

Vous voulez jouer ?
Comment remplacer la chaine (ou plutot date ;) ) AAAA-MM-JJ en JJ/MM/AAAA avec ereg_replace() ? (il y à d’autres méthodes mais c’est pour l’exemple :) )

$sDate= '2009-10-13';
echo ereg_replace('^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$', '\3/\2/\1', $sDate);

Ici, nous jouons donc avec des parenthèses capturantes.

Les fonctions PHP qui utilisent les expressions régulières sont nombreuses et permettent beaucoup de chose :

En voici quelques unes :

A vous de trouver laquelle correspond à votre besoin ;)

Pour vous aidez voici un document « Help sheet » bien pratique :

Les Expressions régulières en PHP

BlogBang

4 commentaires

  1. Etienne14 dit :

    Les fonctions basées sur POSIX (ereg, eregi et consort) sont dépréciées depuis PHP 5.3.
    Les fonctions preg_x (PCRE) sont conseillées à leur place, depuis PHP 4, car plus rapide.

  2. [...] : La manipulation des chaines de caractères avec les Expressions régulières Les Expressions régulières en PHP Tweetez-le !Partagez-le sur FacebookPartagez-le sur del.icio.usTomber sur un bon truc ? Partagez [...]

  3. Martin dit :

    En principe, on devrait dire, en français expressions rationnelles.

Déposez un commentaire





Additional comments powered by BackType