Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

Le TutoDeb sur Expreg.com - Section 1

Je suis une banane en regex, une vraie bille, bref j'y connais que dalle... faut qu'on m'aide là !

Afin de vous éviter la perte de vos cheveux avec la grosse part de théorie que vous trouverez d'ailleurs dans les autres tutos du site, on va y aller directement sans trop se prendre la tête.

Regex pour vérifier une simple chaine chiffrée !

C'est parti !
On va commencer avec une simple recherche suivie d'une condition pour vérifier.
Dans les exemples qui suivront, vous ne trouverez parfois que la regex seule. Pour faire vos tests, il vous suffira simplement de recopier le premier exemple et de changer le motif.

Pour vos tests, créez une simple page nommée testregex.php et placez-la dans votre localhost.

RAPPEL AVANT DE POURSUIVRE

regex - expreg - expressions régulières

Reprenons notre image exemple d'un motif de regex de la page précédente. Comme vous pouvez le constater, il y a des délimiteurs sur l'image çi-dessus. Délimiteurs qui permettent de savoir où commence et où fini le motif de recherche. Vous pouvez bien évidement utiliser un caractère de votre choix pour vos délimiteurs. Néanmoins, tous ne sont pas permis et je vous conseille vivement la lecture de cet article qui précise sous quelles conditions ils faut les employer.
Lire l'article : >>> Le délimiteur et les PCRE

Voilà, si cela est assimilé, on peut maintenant y aller !

1) Regex et recherches... PREG_MATCH

Exemple d'un motif simple :
<?php
$chaine = '1515' ;
if( preg_match ( '`5`' , $chaine )){ echo 'VRAI' ; } else { echo 'FAUX' ; }
?>

Résultat :
La condition affichera : VRAI

Explication :
Le motif de la regex est archi simple, on demande au moteur d'expressions régulières de chercher le chiffre 5 dans la chaine.
Certains me diront qu'on obtiendrait le même résultat 10 fois plus vite avec strpos(). Certes, mais ici c'est juste pour l'exemple.

============================================

2) Regex et recherches... PREG_MATCH

Exemple d'un motif simple + ancrage de début de chaine (le ^) :
<?php
$chaine='1515';
if(preg_match('`^5`',$chaine)) { echo 'VRAI'; } else { echo 'FAUX'; }
?>

Résultat :
La condition affichera : FAUX

Explication :
Le motif de la regex est toujours très simple, on a simplement ajouter le ^ qui marque le debut de la chaine. En clair, on demande au moteur d'expressions régulières de chercher si la chaine débute par le chiffre 5.

Voir la signification du symbole ^ sur cette page : >>> Les symboles

============================================

3) Regex et recherches... PREG_MATCH

Exemple d'un motif simple + ancrage de fin de chaine (le $) :
<?php
$chaine='1515';
if(preg_match('`5$`',$chaine)){ echo 'VRAI'; } else { echo 'FAUX'; }
?>

Résultat :
La condition affichera : VRAI

Explication :
Dans ce motif de regex, j'ai simplement retirer le ^ qui marque le debut de la chaine et je l'ai remplacé par le $ derrière le chiffre. En clair, on demande au moteur d'expressions régulières de chercher si la chaine se termine par le chiffre 5.

Voir la signification du symbole $ sur cette page : >>> Les symboles

============================================

4) Regex et recherches... PREG_MATCH

Exemple d'un motif simple, comme le premier :
<?php
$chaine='1515';
if(preg_match('`4`',$chaine)){ echo 'VRAI'; } else { echo 'FAUX'; }
?>

Résultat :
La condition affichera : FAUX

Explication :
Dans ce motif de regex, identique au premier exemple, j'ai remplacé le chiffre 5 par un 4.
Comme la chaine ne contient pas le chiffre 4, le résultat est faux.

============================================
Voilà, cette partie a été vraiment très simple, on n'a pas fait grand-chose, mais c'est un début.

Résumé :
- vous avez appris à chercher un terme simplement présent dans la chaine.
- vous avez appris à vérifier si un terme débutait la chaine en utilisant le symbole ^
- vous avez appris à vérifier si un terme finissait la chaine en utilisant le symbole $

C'est tellement simple qu'il suffit de changer la chaine pour tester autre chose : une lettre par exemple

La suite, dans la Section 2, sera nettement plus fournie et à la fin de celle-ci, on fera un petit quizz.

---> TutoDebSection 2
ADAM Benjamin 2008 | Admin