Page 1 sur 1

REGEX

Posté : 26 oct. 2009, 18:01
par NewDeveloppeur
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:

Re: REGEX

Posté : 26 oct. 2009, 18:19
par Dr@ke
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:

Re: REGEX

Posté : 26 oct. 2009, 18:27
par NewDeveloppeur
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 ?

Re: REGEX

Posté : 26 oct. 2009, 18:45
par Dr@ke
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é.