【发布时间】:2011-06-08 14:03:31
【问题描述】:
在我的标记器 (.lex) 文件中,我想匹配以下模式:
AaBC12/awD41/dfs21 etc...
这条规则我已经写好了
[A-Za-z]+[A-Za-z0-9]*[[/]+[A-Za-z][A-Za-z0-9]*]*
{lline = cpflineno;cpflval.str = strdup(cpftext);return K_IDENTIFIER;}
这条规则对我来说似乎是正确的,但如果我有这样的输入:
TOP/MD1
TOP/MD2
TOP/MD2/D/E
我的输出是
TOP/MD1
TOP/MD2
TOP/MD2
/D/E
而不是
TOP/MD1
TOP/MD2
TOP/MD2/D/E
你能告诉我我的规则在哪里失败吗?
【问题讨论】:
标签: regex bison flex-lexer