如何在pyparsing中指定token排序?

2024-10-06 23:28:16 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我正在分析以下行:

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作为一个文本标记进行跳转?在


Tags: the定义somepyparsingquicklazyoverwords
1条回答
网友
1楼 · 发布于 2024-10-06 23:28:16

您已经像解析器一样思考了,因为您知道OneOrMore(Word(alphas))一直在运行,甚至可以读取单词“jumps”。现在反过来,编写解析器以您所想的方式进行操作。在

对于“跳跃”之前的每一个单词,你怎么知道它应该添加到前导单词集中?你不知道每个单词都是跳跃的。Pyparsing不会自动执行此lookahead,但您可以使用NotAny(可以使用“~”运算符缩写):

JUMPS = Literal("jumps")
some_words = OneOrMore(~JUMPS + Word(alphas))

现在在匹配另一个单词之前,一些单词首先验证单词不是“跳跃”。在

相关问题 更多 >