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