gpt4 book ai didi

python - 如何从 pyparsing token 中取回原始文本

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:36 24 4
gpt4 key购买 nike

我有一个形式为 name(sum(value1,sum(value2,value3)), "sumname") 的文本并且 pyparsing 返回适当的标记,但是,我有兴趣获得返回真实文本,但我找不到方法。

我尝试过使用一个函数来设置 setParseAction,但是因为它只返回字符串和位置,所以我无法处理尾部。就像,我只会得到:

"sum(value2,value3)), "sumname")"
"sum(value1,sum(value2,value3)), "sumname")"
"name(sum(value1,sum(value2,value3)), "sumname")"

这并不理想,我不想手动重新解析字符串以获得实际的原始字符串。

我尝试atm的方式是:

tokens = grammar.parseString(target_string)  
print >>sys.stderr, pyparsing.originalTextFor(tokens)

但这实际上不起作用:

AttributeError: 'NoneType' object has no attribute 'setParseAction'

最佳答案

将你的表达式包装在 pyparsing 助手 originalTextFor 中。

from pyparsing import makeHTMLTags, originalTextFor

sample = '<tag attr1="A1" attr2="B3">'

openTag = makeHTMLTags('tag')[0]

# the expression returned by makeHTMLTags parses the tag and
# attributes into a list (along with a series of helpful
# results names)
print (openTag.parseString(sample).asList())

# prints
# ['tag', ['attr1', 'A1'], ['attr2', 'B3'], False]

# wrap in 'originalTextFor' to get back the original source text
print (originalTextFor(openTag).parseString(sample).asList())

# prints
# ['<tag attr1="A1" attr2="B3">']

关于python - 如何从 pyparsing token 中取回原始文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395193/

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