Page 1 sur 1

eregi et triple lettres

Posté : 07 juin 2006, 14:10
par drelb
bonjour

voila je désire faire un eregi pour controler un mot si il possede 3 lettres à la suite

voici mon code pour controler par exemple les triple z

mais j'aimerai en fait eviter de faire 26 eregi :x ,

est il possible de controler en un seul eregi les triples de toutes les lettres ?

merci d'avance de votre aide

$string = 'motàcontroler';

if (eregi('zzz', $string)) {
   echo "'$string' contient un 'zzz' !";
}
else
{
echo "le mot est bon etc";
}

Posté : 07 juin 2006, 14:54
par mere-teresa
Ta question est très intéressante, et spontanément j'aurais utilisé le motif [a-z]{3} mais cela signifie que le mot est composé de 3
lettres qui se suivent...pas forcément identiques.

si tu lis l'anglais

Posté : 07 juin 2006, 15:33
par Ripat
if (preg_match('#([a-z])\1{2}#i', $mot)){
  echo "lettre trple !";
}
On prend chaque lettre [a-z] que l'on capture et on vérifie si cette capture (\1) n'est pas répétée deux fois.

Posté : 07 juin 2006, 15:49
par drelb
Merci beaucoup c'est parfait !

Posté : 07 juin 2006, 15:53
par Ripat
Ca, c'est pour les lettres triples, comme demandé.

Il me semblerait plus logique de simplement éliminer également les répétitions de plus de deux lettres (triple lettres et plus):

Code : Tout sélectionner

#([a-z])\1{2,}#i

Posté : 07 juin 2006, 16:02
par drelb
ah vi

merci encore ripat