在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)']
这就是说:解析函数调用的方式写得很好,但是不使用Python join
语句而将其作为字符串而不是作为数组返回?
答案 0 :(得分:0)
感谢PaulMcG先生,因为他在评论中给出了三个可能的答案,但是我正在为可能也需要它的人发布解决方案。 originalTextFor
帮了我大忙:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
现在它正在返回:
['function(param1,param2,param3)']