gpt4 book ai didi

python - Pyparsing:如何将新元素插入 ParseResult

转载 作者:行者123 更新时间:2023-11-28 21:54:56 25 4
gpt4 key购买 nike

我开发了一个 pyparsing 语法,它必须向输出插入新的标记。此标记不是来自原始输入。

例如:

输入:

'/* foo bar*/' 

输出:

['comment', '/* foo bar*/']

如果元素不在原始表达式中,我如何将元素添加到解析器输出?

最佳答案

实现相同结果的另一种方法,也许具有更强的表达能力,是使用命名表达式。例如:

from pyparsing import *

grammar = cStyleComment("comment")
s = '/* foo bar*/'

sol = grammar.parseString(s)
print sol.asDict()

>>> {'comment': '/* foo bar*/'}

您会注意到您没有预期的列表,但这将允许您在结果变得更复杂时像听写一样访问结果。让我们看看实际效果:

code    = Word(alphanums+'(){},.<>"; ') 
grammar = OneOrMore(code("code") | cStyleComment("comment"))
s = 'cout << "foobar"; /* foo bar*/'

sol = grammar.parseString(s)
print "code:", sol["code"]
print "comment", sol["comment"]

>>> code: cout << "foobar";
>>> comment: /* foo bar*/

关于python - Pyparsing:如何将新元素插入 ParseResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23361973/

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