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
Linux
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
Bon à savoir... retour d'expérience sur Expreg.com
Dans cette rubrique, en fonction de mon expérience personnelle, en fonction de mes recherches et découvertes ou celles d'autre regexeur aussi fou que moi, je vous donnerai au coup par coup quelques conseils, méthodes, trucs et astuces dans la pratique des expressions régulières.
1) La gestion des caractères accentués !
La gestion correcte des caractères accentués dans nos expressions régulières sont directement lié au jeu de caractères installé sur le serveur. Ceux d'entre-vous qui possèdent un dédié et qui ont la main sur la config n'auront sans doute pas besoin de cette astuce.Pour les autres, les mutualisés hébergés à l'étranger, la config serveur ne gèrera peut-être pas les accentués.
Si tel est le cas, pour que les accentués soient pris en compte dans la classe [[:alpha:]] ou \w, l'instruction suivante placée en tête de votre script devrait résoudre le problème : setlocale(LC_ALL,'fr-FR.ISO8859-1');
?>
2)Les références arrières -> parenthèses capturantes
Dans les regex, vous aurez déjà sans doute remarqué une notation comme ceci : \1 ou \\1Il s'agit simplement d'une référence arrière identique à $1 ou $3 à la grosse différence près que $1 ou $3 ne peuvent être utilisées qu'en dehors du masque de la regex.
Si vous voulez faire appel à une référence arrière à l'intérieur de votre regex vous devez impérativement utiliser la notation \1.
En sachant cela, on peut se faire une petite règle facile à suivre et à retenir :
- dans le motif de la regex, on utilise \1
- en dehors du motif de la regex, on utilise $1
3) Preg_replace_callback vs Preg_replace + option "e" !
Juste un petit rappel :Dans une grande majorité de cas, une fonction de type callback sera toujours bien plus rapide que preg_replace() et son option e
Personnellement je déconseille vivement l'emploi de preg_replace() + e.
Une fonction de callback est une une fonction qui permet d'exécuter un code ou une fonction PHP au moment du remplacement.
