考虑一个简单的整数数字识别表达式,如下所示:
[0-9]+ printf("Integer");
现在,如果我将123其作为输入返回Integer,那就足够公平了。现在,如果我s123作为输入给出它会打印出来sInteger。s默认情况下会打印无与伦比的内容ECHO,这对我来说很酷。但是为什么Integer还要打印。lex 不应该只返回s吗?我的输入被视为一个完整的字符串,对吗?我的意思是s123 is considered as a 1 full input?一旦s遇到不匹配的[0-9]+,那么它应该只是echo default unmatched value s123但是为什么sInteger?