Comment ne garder que certains caractères d'une chaine ?
Gta3soluce
Messages postés8Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 6 décembre 2007
-
5 déc. 2007 à 15:53
Gta3soluce
Messages postés8Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 6 décembre 2007
-
6 déc. 2007 à 09:14
Bonjour,
J'utilise la fonction str_replace pour remplacer certains caractère contenu dans une chaine par d'autres.
J'aimerais faire le contraire. C'est à dire remplacer tous les caractères sauf ceux que je spécifierais mais je ne sais pas s'il existe une fonction php qui fait ca.
Par exemple, tu veux ne garder que les voyelles d'un texte :
$nouveau_texte = preg_replace('`([^aeiouy])`i', '', $ancien_texte);
Explications :
- les guillemets inversés ` servent de délimiteur à l'expression régulière
- les parenthèses servent à capturer la chaine
- les crochets servent à spécifier une classe de caractères.
- l'accent circonflexe ^ sert à spécifier qu'on cherche l'inverse de ce qui est spécifié dans la classe de caractères.
- le i est une option de recherche qui indique que la recherche n'est pas sensible à la casse.
Effet : cette expression régulière va capturer tous les caractères qui ne sont pas aeiouy, majuscule ou minuscule. Tous les caractères qui ne correspondent pas à ce qui est spécifié dans la classe de caractères sont remplacés par '' (chaine vide).
Libre à toi de les remplacer par autre chose.
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 5 déc. 2007 à 17:00
salut,
c'est un peu bizarre ce que tu veux faire
ya bcp de cas
exemple
$chaine="pour faire ce genre de travail";
tu veux remplacer le tout mais garder le mot "genre" par exemple
bah, ya le "pour faire ce" qui est avant le mot à garder et ya aussi "de travail" apres le mot,
une expliquation de ce que tu veux vraiment faire ?
Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.