[PHP] Regex... [Fermé]

Signaler
Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
-
Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
-
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

3 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 493
Salut,

Essaie

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

Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
40
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 ^^'
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 493
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.
Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
40
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
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
14
Précise ; si le mot est par exemple aabc, ça passe ?
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 493
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
Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
40
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...