gpt4 book ai didi

python - 在pyparsing中检测变量类型

转载 作者:行者123 更新时间:2023-11-28 17:49:45 25 4
gpt4 key购买 nike

我有这样的标记序列:

TokenName(alphanum) value(printable) value(printable, optional) value(printable, optional) Literal(';')

举例:

Token1 "stringValue with escaped data eg: \" in it";
Token2 12;
Token3 0xaaaa; // and hex string indicated by 0x
Token4 "value1" 2 0xbbcc;

除此之外的结果是:

[
['Token1', 'stringValue with escaped data eg: " in it'],
['Token2', 12],
['Token3', '0xaaaa'],
['Token4', ['value1', 2, '0xbbcc']],
]

现在我有这样的东西:

import pyparsing as p
non_semi = ''.join(c for c in p.printables if c != ';')
semi = p.Literal(';').suppress()

single_value = p.Word(non_semi) + semi
multi_value = p.Group(
p.Word(non_semi) +
p.Word(non_semi) +
p.Optional(p.Word(non_semi)) +
semi
)

value = single_value | multi_value
assignment = p.Group(p.Word(p.alphanum) + value)

bnf = p.Group(p.OneOrMore(assignment))
bnf.ignore(p.cStyleComment)

但是这段代码,并没有把12改成int(12),也得到了字符串中的"字符,pyparsing可以处理这个值吗转换?

编辑

好的,我知道如何处理字符串:QuotedString帮助很大

最佳答案

好的,我找到了我的答案:

用于处理字符串:QuotedString

对于处理 int 和其他转换,有一个标记定义的 setParseAction 方法,witch 可以采用例如。 lambda s, l, t: int(s) 参数 witch 会成功

关于python - 在pyparsing中检测变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318888/

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