REGEX

Eléphanteau du PHP | 29 Messages

26 oct. 2009, 18:01

Bonjour, je sais que j'écrit beaucoup de post ses temps-ci, c'est normal je travail sur un projet assez long... Mais sachez que je n'arrive ici qu'après de longues recherches...

Je me suis aidé du site du zéro pour arriver jusque là :
preg_replace('#![A-Z][a-z][0-9]#','_',$chaine);
ou ça
preg_replace('#[^A-Z][^a-z][^0-9]#','_',$chaine);
Si il y a bien une chose avec la quelle je ne suis pas très doué c'est bien les REGEX :cry: Ce que j'essaye de faire c'est de créer une regex qui remplace dans une chaine tout ce qui n'est pas :

ABCDEFHGIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789


par : _

Je suis sûr que pour ceux qui maîtrise les REGEX ça doit leur paraître ridicule comme question... :oops:
Bienvenue sur :
http://france.webmaster.fr.free.fr
Fabrication en cours...

Mammouth du PHP | 985 Messages

26 oct. 2009, 18:19

Va voir ici: http://www.ilu.be/wiki/Aide-memoire_des_regex
et ici: http://www.lumadis.be/regex/tuto_pcre.php#astuces

Sinon:
preg_replace('#\W#', '_', $chaine); // en Iso

preg_replace('#\W#u', '_', $chaine); // en UTF-8
Fais plusieurs tests pour t'assurer que cela convient vraiment à ce que tu voulais :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphanteau du PHP | 29 Messages

26 oct. 2009, 18:27

Très pratique le premier lien :shock: :)
Ok je commence les tests...

Donc \w c'est [a-z0-9_]
et \W c'est tout sauf [a-z0-9_]

Mais comment fait ton pour avoir tout sauf [a-zA-Z0-9_], majuscule comprise ?
Bienvenue sur :
http://france.webmaster.fr.free.fr
Fabrication en cours...

Mammouth du PHP | 985 Messages

26 oct. 2009, 18:45

L'option \w et \W sont insensibles à la casse.

Donc la reg que je t'ai donné fonctionne même pour les majuscules.

Sinon, il faut utiliser l'option: i (insensible à la casse) -> c'est dans les liens que je t'ai donné.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.