eregi et triple lettres

Eléphant du PHP | 77 Messages

07 juin 2006, 14:10

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";
}

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

07 juin 2006, 14:54

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
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 1380 Messages

07 juin 2006, 15:33

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.
ripat

Eléphant du PHP | 77 Messages

07 juin 2006, 15:49

Merci beaucoup c'est parfait !

ViPHP
ViPHP | 1380 Messages

07 juin 2006, 15:53

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
ripat

Eléphant du PHP | 77 Messages

07 juin 2006, 16:02

ah vi

merci encore ripat