wik*_*ier 7 python parsing pyparsing
我是新用的pyparsing,但我找不到如何解决这个相当容易的问题.我(目前)有一个简单的语法,但我找不到根据我在语法中定义的类型来区分解析结果的方法.
也许通过一个例子来解释它可能更容易.假设这个元素:
elem = foo | bar
Run Code Online (Sandbox Code Playgroud)
当我调用时:
elem.parseString("...")
Run Code Online (Sandbox Code Playgroud)
假设字符串与我的语法匹配,我如何区分它是否与'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'}
Run Code Online (Sandbox Code Playgroud)