python - 使用 pyparsing 对结果进行类型检查

标签 python parsing pyparsing

我是 pyparsing 的新手,但我找不到解决这个非常简单的问题的方法。我(目前)有一个简单的语法,但我找不到根据我在语法中定义的类型来区分解析结果的方法。

也许用一个例子来解释它会更容易。假设这个元素:

elem = foo | bar

当我调用时:

elem.parseString("...")

假设字符串与我的语法匹配,我如何区分它是与“foo”匹配还是与“bar”匹配?我得到一个没有此类元数据的 ParseResults 实例对象。

提前致谢。

最佳答案

您可以为它们指定一个名称(一个使用 Literal 的复杂示例):

foo = Literal('foo').setResultsName('foo')
bar = Literal('bar').setResultsName('bar')
grammar = foo | bar
parsed = grammar.parseString('bar foo')
print parsed
# (['bar'], {'bar': [('bar', 0)]})
print parsed.asDict()
# {'bar': 'bar'}

关于python - 使用 pyparsing 对结果进行类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084112/

相关文章:

python - 用大括号解析文件

python - 如何在python中修改Yolo .txt文件的值

python - 最大的森林(亚马逊面试题)

C 通过引用传递 "returns"内容不正确

ios - Swift中JSON解析返回数据

python - PyParsing 和嵌套括号 : unexpected EOF error

python - 在 python 3 中禁用异常链接

android - Python:检测安卓

python - 使用 Python/Pandas 库从 JSON 响应中解析数据时遇到问题

python - Pyparsing setParseAction 函数没有参数