我正在尝试使用JFlex构建一个解析器,但遇到了一个非常基本的问题。我想要这个代币
[A-Za-z]+_N$ { System.out.println("Noun"); }并让它将"car_N“识别为”名词“,而不识别"car_NN”。但是,如果我使用
[A-Za-z]+_N { System.out.println("Noun"); } "car_N“得到识别,但"car_NN”也返回"car_N“,这不是我想要的。
我想知道这里有人知道怎么帮忙吗?
JFlex和Flex前视符号'$‘似乎不起作用
发布于 2011-11-06 12:29:39
我想你误解了“$”的意思。作为先行检查,它只匹配文本行的末尾(硬行换行)。因此,它工作得非常好。但是它不能区分car_N和car_NN,除了位于一行末尾的car_N实例。也许你真的想要一个前瞻性的东西,比如:
[A-Za-z]+_N/[^A-Za-z]https://stackoverflow.com/questions/7800725
复制相似问题