PyParsing:如何解析函数调用并将其作为字符串返回
PyParsing: how to parse a function call and returning it as string
来自 here 我有这段代码来解析函数调用:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")"))
但是,调用时:
result = functionBody.parseString('function(param1,param2,param3)')
我得到了这个结果:
['function', '(', 'param1', 'param2', 'param3', ')']
有没有办法得到这个结果:
['function(param1, param2, param3)']
也就是说:解析函数调用写的很好,但是没有用Pythonjoin
句,而是以字符串的形式返回,而不是以数组的形式返回?
我感谢 PaulMcG 先生,因为他在评论中给出了三个可能的答案,但我正在为可能也需要它的人发布一个解决方案。 originalTextFor
对我有用:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
现在返回:
['function(param1,param2,param3)']
来自 here 我有这段代码来解析函数调用:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")"))
但是,调用时:
result = functionBody.parseString('function(param1,param2,param3)')
我得到了这个结果:
['function', '(', 'param1', 'param2', 'param3', ')']
有没有办法得到这个结果:
['function(param1, param2, param3)']
也就是说:解析函数调用写的很好,但是没有用Pythonjoin
句,而是以字符串的形式返回,而不是以数组的形式返回?
我感谢 PaulMcG 先生,因为他在评论中给出了三个可能的答案,但我正在为可能也需要它的人发布一个解决方案。 originalTextFor
对我有用:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
现在返回:
['function(param1,param2,param3)']