flex(词法分析器)正则表达式 - 重用定义
-
05-07-2019 - |
题
我有这个有效的定义:
IDENTIFIER [a-zA-Z][a-zA-Z0-9]*
我不想继续重复[a-zA-Z]和[0-9],所以我做了两个新的定义
DIGIT [0-9]
VALID [a-zA-Z]
如何重写IDENTIFIER规则以使用DIGIT和VALID定义?
我不知道如何做“第二次”匹配,我被困在这里:
IDENTIFIER {VALID}[{VALID}{DIGIT}]* // This syntax is incorrect
感谢。
编辑:我正在使用的整个测试程序: http://pastebin.com/f5b64183f
解决方案
看起来你真的想要:
IDENTIFIER {VALID}({VALID} | {DIGIT})*
[{VALID} {DIGIT}]解析为[[A-Za-z] [0-9]],这不是一个合法的构造。
其他提示
我认为这样做但我无法测试。你有样本数据吗?
(?:[A-ZA-Z])+(?:[0-9])+
不隶属于 StackOverflow