[PHP] Regex...

Fermé
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 - 22 avril 2011 à 12:32
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 - 22 avril 2011 à 21:30
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 avril 2011 à 13:12
Salut,

Essaie

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

0
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
22 avril 2011 à 13:17
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 avril 2011 à 13:31
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 jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
22 avril 2011 à 13:52
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 vendredi 30 juillet 2010 Statut Membre Dernière intervention 29 novembre 2013 17
22 avril 2011 à 15:25
Précise ; si le mot est par exemple aabc, ça passe ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 avril 2011 à 16:32
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 jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
22 avril 2011 à 21:30
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