Python PyParsing:如何解析函数调用并将其作为字符串返回
我有以下代码来解析函数调用:Python PyParsing:如何解析函数调用并将其作为字符串返回,python,pyparsing,Python,Pyparsing,我有以下代码来解析函数调用: functionName = Word(alphanums + '_') functionBody = Forward() functionBody <<= functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")) 我得到了这个结果: ['function', '(',
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")"))
我得到了这个结果:
['function', '(', 'param1', 'param2', 'param3', ')']
有没有办法得到这个结果:
['function(param1, param2, param3)']
也就是说:解析函数调用写得很好,但是没有使用Pythonjoin
语句,而是以字符串而不是数组的形式返回它?我感谢Mr.,因为他在评论中给出了三个可能的答案,但我也为可能需要它的人发布了一个解决方案originalTextFor
帮了我一把:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
我感谢先生,因为他在评论中给出了三个可能的答案,但我为可能也需要它的人发布了一个解决方案originalTextFor
帮了我一把:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
“…没有使用Python连接语句?”这是为什么?我相信这是最好的方法。@jaidepshekhar,我正在另一个表达式中使用此代码段,如果我不将其称为字符串,pyparsing只会返回错误。您有3个选项:
originalTextFor
、Combine
或function\u body.addParseAction('.join)
。对这些进行一些实验,看看你最喜欢哪一个。“…不使用Python连接语句?”这是为什么?我相信这是最好的方法。@jaidepshekhar,我正在另一个表达式中使用此代码段,如果我不将其称为字符串,pyparsing只会返回错误。您有3个选项:originalTextFor
、Combine
或function\u body.addParseAction('.join)
。用这些做一些实验,看看你最喜欢哪一个。
['function(param1,param2,param3)']