假设我有一个 lex 正则表达式
[aA][0-9]{2,2}[pP][sS][nN]? { return TOKEN; }
如果用户输入
A75PsN
A75PS
它会匹配
但是如果用户说类似的话
A75PKN
我希望它出错并说“无法识别字符 K,期待 S”
我现在正在做的只是像这样写
let [a-zA-Z]
num [0-9]
{let}{num}{2,2}{let}{2,3}
然后实质上重新对 Yacc 中的字符串进行词法分析,以便我可以有有意义的错误条件
我怎样才能解决这个问题?
我唯一能想到的是使用命名组?