Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

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

une tasse de café avec les expressions régulières en phpDans les regex, vous aurez déjà sans doute remarqué une notation comme ceci : \1 ou \\1
Il 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.
ADAM Benjamin 2008 | Admin