次のような単純な整数桁識別式を考えてみましょう。
[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?