expressions régulières flex (analyseur lexical) - Réutilisation des définitions
-
05-07-2019 - |
Question
J'ai cette définition de travail:
IDENTIFIER [a-zA-Z][a-zA-Z0-9]*
Je ne veux pas continuer à répéter le [a-zA-Z] et le [0-9], alors j'ai fait deux nouvelles définitions
DIGIT [0-9]
VALID [a-zA-Z]
Comment puis-je réécrire la règle IDENTIFIER pour utiliser les définitions DIGIT et VALID?
Je ne sais pas comment faire la "seconde" match, je suis coincé ici:
IDENTIFIER {VALID}[{VALID}{DIGIT}]* // This syntax is incorrect
Merci.
Modifier: l'ensemble du programme de test que j'utilise: http://pastebin.com/f5b64183f .
La solution
On dirait que vous voulez réellement:
IDENTIFIANT {VALID} ({VALID} | {DIGIT}) *
[{VALID} {DIGIT}] se résout en [[A-Za-z] [0-9]], ce qui n'est pas une construction légale.
Autres conseils
Je pense que ça va le faire mais je ne peux pas le tester. avez-vous des exemples de données?
(?: [a-zA-Z]) + (?: [0-9]) +