Re: Expressions régulières
Bonjour,
Citation:
Envoyé par F2
que 2 opérateurs ne se suivent pas, ou que 2 caractères ne se suivent pas, etc...
Les expressions régulières sont très puissantes pour la reconnaissance de motifs mais elles ont leurs limites, en particulier elles ne sont pas faites pour créer un analyseur de grammaire :(
Re: Expressions régulières
Citation:
Envoyé par F2
je suis sur un projet de C, dans lequel je dois traiter des expressions régulières afin de les transformer en AFD (bon, je rentre pas ds les détails du projet, ca sert a rien).
Ok, classique.
Citation:
en gros, ma tâche est de vérifier qu'une expression est conforme a un certain format. exemple de format : ((a|b).c)# il faut que ma partie du programme verifie, par exemple, que 2 opérateurs ne se suivent pas, ou que 2 caractères ne se suivent pas, etc...
j'ai donc pensé éffectuer toute une suite de tests, avec un case of par exemple, et tester tous les types d'erreur possibles ; mais j'ai peur d'oublier des cas de figures. auriez-vu d'autres solutions a m'apporter ??
Il te faut un parseur pour verifier cela. Le plus simple si tu n'en as jamais fait est d'en faire un par descente recursive ou par precedence d'operateur. Si tu ne trouves pas ce qu'il te faut avec ces termes, demande sur le forum d'algorithmique.
(Au fait, meme si suivant le contexte, l'un ou l'autre est plus aise a comprendre, les expressions regulieres et les FSM ont la meme puissance de description; pour arriver a verifier que des parentheses se correspondent bien, il faut soit en limiter le nombre, soit garder plus d'informations que simplement un etat).