gpt4 book ai didi

python - 如何在 pyparsing 中指定 token 顺序?

转载 作者:太空狗 更新时间:2023-10-30 02:49:42 26 4
gpt4 key购买 nike

假设我正在解析以下行:

The quick brown fox jumps over the lazy dog

我想将其解析为:

Words('The quick brown fox') + Literal('jumps') + Words('over the lazy dog')

我当前的 pyparsing 定义是:

some_words = OneOrMore(Word(alphas))
jumps = Literal('jumps')
sentence = some_words + jumps + some_words

发生的事情是 some_words 吞没了“jumps”,我得到了一个解析错误。如何使 pyparsing lex 将跳转作为文字标记?

最佳答案

你已经像解析器一样思考了,因为你明白 OneOrMore(Word(alphas)) 一直在继续,甚至阅读单词“jumps”。现在反过来,编写解析器按照您的想法做事。

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

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

现在在匹配另一个词之前,some_words 首先验证这个词不是“jumps”。

关于python - 如何在 pyparsing 中指定 token 顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com