スペース以外の文字を一致させたいので、JFlex で flex ファイルを定義しました。
%%
Value = [\S]+
%%
{Value} { return MyTokens.Value; }
. { return MyTokens.BadCharacter; }
次に、生成された Java コードで文字列「abc」を分析しようとしましたが、次のようになりました。
BadCharacter(a)
BadCharacter(b)
BadCharacter(c)
宣言を次のように変更すると:
Value = [a-z]+
次に、期待される結果を得ることができます:
Value(abc)
なぜ\S
機能しないのですか?「非空白」という意味ではありませんか?