假设我正在分析以下行:
The quick brown fox jumps over the lazy dog
我想将其解析为:
^{pr2}$我当前的pyparsing定义是:
some_words = OneOrMore(Word(alphas))
jumps = Literal('jumps')
sentence = some_words + jumps + some_words
发生的是some_words
吞并了jumps'
,我得到了一个解析错误。如何将pyparsing lex作为一个文本标记进行跳转?在
您已经像解析器一样思考了,因为您知道
OneOrMore(Word(alphas))
一直在运行,甚至可以读取单词“jumps”。现在反过来,编写解析器以您所想的方式进行操作。在对于“跳跃”之前的每一个单词,你怎么知道它应该添加到前导单词集中?你不知道每个单词都是跳跃的。Pyparsing不会自动执行此lookahead,但您可以使用NotAny(可以使用“~”运算符缩写):
现在在匹配另一个单词之前,一些单词首先验证单词不是“跳跃”。在
相关问题 更多 >
编程相关推荐