Général
- Présentation
- Les Symboles
- Les Métacaractères
- Les Ancres et Classes
- Les options
- Constantes prédéfinies
- Equivalences
- Créer un motif
- Les POSIX
- Les PCRE
- Les Plus des PCRE
- Les Assertions Part I
- Les Assertions Part II
- Motif conditionnel
- Mysql et les regex
- Url Rewriting
- Optimisation
- Aide mémoire
Les PCRE
Les POSIX
Pratique
Spécial php
- Conseils et Astuces
- Délimiteur PCRE
- Créer une bdd
- Utiliser du BBcode
- Le binaire
- Faire un panier
- Cases à cocher
- Citations imbriquées
- Colorateur syntaxique
- Les list-box ou combo-box
- Faire un diaporama
- Isset ou empty ?
- Une légende au survol
- Site en plusieurs langues
- Requêtes dynamiques
- Gestion des smiley
- Faire un moteur de template
- Timestamp php/mysql
- Timestamp mysql
- Matcher une adresse email
- Controler des données
Les billets de fred
- Les POSIX... mise en pratique !
- Limiter l'accès à un répertoire
- Alternance de couleurs
- Magic_quotes
- Désactiver les short_tags
- Require ou include : Bench
- Cohérence dans les chaines de caractères
- "echo" : lapin ou tortue ?
- Gérer un formulaire avec plusieurs boutons
- Le formulaire a t'il été soumis ?
- J'ai décidé de grossir
- La guerre des étoiles
- La guerre des boutons
- Headers already sent
- IP, IP, IP, houra !
- Créer un itérateur avec PHP5
- On vous conduit vers la lumière
- Comment utiliser MySQL avec PHP
- Non aux booléens !
- Php.ini : dist /recommended
- Include : gouffre ou fêlure ?
- Simple comme les sessions !
- Simplifier le traitement des erreurs
- Structurez vos applications
- Franchement, t'es trop for !
- Notice: Undefined variable (ou index)
- Proscrire les variables auto déclarées
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
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
