MarvinLeRouge Posté 28 Septembre 2008 Posté 28 Septembre 2008 Salut, J'ai un petit pb avec une expression régulière : je souhaite supprimer les mots de moins de n caractères dans une chaine. Mon pb : si 2 mots "courts" se suivent, seul le premier est supprimé. Je suppose que c'est dû au fait que le caractère entre les deux mots a déjà été compté dans l'expression du premier mot. Je suppose que ça doit pouvoir se faire assez facilement (et sans passer la chaine en boucle infinie au regexp jusqu'à ce qu'elle ne change plus ). $pattern = "/ (\w){1,3} /";$replace = "";$str = preg_replace ($pattern, $replace, $str); Merci
Kioob Posté 28 Septembre 2008 Posté 28 Septembre 2008 Hello, essaye en remplaçant tes espaces par \b ; il s'agit d'une assertion ne "consommant pas" de caractère. Tout est expliqué dans la doc PHP, et en français
MarvinLeRouge Posté 30 Septembre 2008 Auteur Posté 30 Septembre 2008 Salut Kioob, Merci pour le coup de l'\b, ça marche nickel. Je ne connaissais pas le truc des assertions "ne consommant pas de caractère".
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant