Bonjour,
J'aimerai savoir si il existe une expression régulière qui permet de reconnaître une expression régulière. Si oui laquelle. Si non, comment reconnaître une expression régulière.
Merci d'avance de vos réponses
Bonjour,
J'aimerai savoir si il existe une expression régulière qui permet de reconnaître une expression régulière. Si oui laquelle. Si non, comment reconnaître une expression régulière.
Merci d'avance de vos réponses
La seul que je vois c'est "*" car une expression régulière ca peut être n'importe quelle expression.
Ca va deà
Code : Sélectionner tout - Visualiser dans une fenêtre à part "Chien"
en passant par
Code : Sélectionner tout - Visualiser dans une fenêtre à part "#(((https?|ftp)://(w{3}.)?)(?<!www)(w+-?)*.([a-z]{2,4}))#"
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part "gr[io]s"
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
"Les regexps" ça ne veut pas dire grand chose... Il faut préciser de quoi tu parles exactement, les expressions régulières des différents logiciels et présentations théoriques ne sont pas toutes identiques, loin s'en faut.
Enfin la plupart des langages d'expressions régulières ne sont pas réguliers (ne peuvent donc pas être reconnus par une regexp), ne serait-ce que parce qu'ils contiennent des parenthèses équilibrés (typiquement non régulier, voir lemme de l'étoile).
--
Jedaï
je souhaiterai reconnaitre les expressions régulières utilisés par le logiciel flex avec le logiciel flex. Merci
Ce n'est pas possible, flex est un simple lexer, et ne peut reconnaître que des langages réguliers. Il faut ajouter un parser comme yacc ou bison pour vérifier la validité d'une regex de flex.
Enfin peut-être est-il possible de faire générer à flex un code C qui ferait la vérification, mais ça serait coton et vraiment pas adapté. Pourquoi veux-tu faire ça exactement, quel est ton véritable but ?
--
Jedaï
je veux écrire un front-end a flex bison pour générer des arbres à partir d'une grammaire simplifier écrite dans un style proche de celui de flex & bison.
le programme prends en entrer un fichier grammaire
et ensuite un ensemble de fichier grammaire et lexer pour flex et bison sont créer, on compile le tout et on obtient un parser plus simple à ecrire, à maintenir et à faire évoluer que flex et bison directement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 %%TOKEN indent [a-zA-Z]+[0-9a-zA-Z]* number [0-9]+ plus "+" %%GRAMAR root: Left(number) Node(plus) Right(number) ...
(L'arbre ne sera pas forcément binaire), mais j'aimerai que ca soit assez générique pour que d'autre puisse l'utiliser et l'améliorer.
voila je sais pas si j'ai été asser clair.
NB: il est vrai que je n'ai pas une bonne mémoire et que je n'ai pas retenu mes cours sur les langages formels.![]()
bonjour
le prof nous avait introduit lex en disant
regexp : /* rien */
| STRING
| regexp '*'
| '(' regexp ')'
| regexp regexp
| regexp '|' regexp
si je me rappelle bien il suffit de dire que la précédance de '*' est la plus forte
Tu confond avec yacc ou un autre parser, lex est un simple lexer.
--
Jedaï
Partager