[PHP] Regex...

Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -  
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -
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 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Essaie

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

0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   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 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   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 159 Date d'inscription   Statut Membre Dernière intervention   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 172 Date d'inscription   Statut Membre Dernière intervention   17
 
Précise ; si le mot est par exemple aabc, ça passe ?
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   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 159 Date d'inscription   Statut Membre Dernière intervention   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