[PHP] Regex...

Luxerails Messages postés 162 Statut Membre -  
Luxerails Messages postés 162 Statut Membre -
Bonjour, comme je suis vraiment nul en regex j'aimerais que vous m'aidiez c:

Je dois récupérer un fichier dico.txt, qui contient plein de mot séparés par des sauts de lignes. Mon but est de savoir combien il y a de mots qui contiennent les lettres a, b et c dans cet ordre (par exemple, abc fonctionne mais pas acb).

Voici mon code :
<?php
$fichier = file_get_contents('dico.txt');
$fichier2 = explode("\n", $fichier);
$nb_de_mots = 0;

for($nb =0; $fichier2[$nb] != false; $nb++)
{
 $fichier_dico = $fichier2[$nb];
 if (preg_match("Regex...", $fichier_dico))
 {
 $nb_de_mots++;
 }

}

echo $nb_de_mots; // À la fin le prog doit me renvoyer le nombre de mots contenant A B et C dans cet ordre


Merci d'avance
A voir également:

3 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Essaie

a[^ac]*b[^ab]*c

0
Luxerails Messages postés 162 Statut Membre 41
 
En fait je suis sur un site avec des épreuves, et dans cette épreuve il faut donner la réponse sous la forme mot1-mot2-mot3...

Ta regex à l'air de marcher, me retourne abces-kabic-abject mais ça a pas l'air de marcher quand je valide la réponse sur le site...

Merci quand même ^^'
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Alors peut être que tu dois donner un peu plus de détails.
En ce qui concerne la regex elle trouve ce que tu demandes.
0
Luxerails Messages postés 162 Statut Membre 41
 
Peut-etre que j'ai pas compris l'épreuve alors...

"Trouvez tous les mots contenant les lettres "a", "b" ET "c" dans cet ordre dans ce dictionnaire."

dico : https://enigmes-a-thematiques.fr/epreuves/dico.txt
0
siniko44 Messages postés 187 Statut Membre 17
 
Précise ; si le mot est par exemple aabc, ça passe ?
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Normalement non.
Dans la regex après le a c'est une classe de caractère qui trouveras tout sauf a et c - comme ça on respecte la 1ère condition que a est suivi d'un b

Ensuite après b c'est une classe qui trouvera tout sauf a et b
Et puis on trouve le c
0
Luxerails Messages postés 162 Statut Membre 41
 
siniko44 : heu, surement, car meme si il y a deux a a côtés, si la regex prend en compte le premier a, il ignore le deuxième a et voit qu'il y a un b et c après...
0