我定义了一个规则:
def("invokation", char('@').word().plus().flatten());对于"@who",它将匹配并得到@who作为结果。
如何请求它只返回没有@的who
发布于 2013-06-22 17:24:31
不确定您的问题是关于Java的PetitParser还是Dart的
在任何情况下,您都需要将char('@')和word().plus().flatten()连接到序列。然后选择列表结果列表中的第二个元素,忽略第一个字符。
在Java中,这看起来像这样:
def("invokation", character('@')
.seq(word().plus().flatten())
.map(Functions.nthOfList(1));在Dart中是这样的:
def("invokation", char('@')
.seq(word().plus().flatten())
.pick(1));顺便说一句,我刚刚提交了对PetitParser的改进,这样你也可以在Java中使用pick(int)了。
https://stackoverflow.com/questions/17248366
复制相似问题