0
我想匹配非空格字符,所以我定义的JFlex的柔性文件:如何在jflex(flex)词法分析器中使用“ S”?
%%
Value = [\S]+
%%
{Value} { return MyTokens.Value; }
. { return MyTokens.BadCharacter; }
然后我尝试生成的Java代码来分析字符串“abc”,但我得到:
BadCharacter(a)
BadCharacter(b)
BadCharacter(c)
如果我改变声明:
Value = [a-z]+
然后我就可以得到预期的结果:
Value(abc)
为什么\S
不工作?这不是指“非空白”吗?
似乎'\ S'确实被jflex支持:http://jflex.de/manual.html ...仅供参考,虽然这可能不是问题的根源,但括号是多余的。 '\ S'可以(应该可以)单独使用。 – Robin
我找到了原因:我使用的JFlex版本是'1.4',它不支持'\ s','\ S'。查看的更新日志。谢谢你们一样! –
Freewind