[英]PyParsing: how to parse a function call and returning it as string
從這里我有這個代碼來解析函數調用:
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
語句就返回為字符串而不是數組?
我感謝PaulMcG先生,因為他在評論中給出了三個可能的答案,但我正在為可能也需要它的人發布一個解決方案。 originalTextFor
幫我解決了這個問題:
functionName = Word(alphanums + '_')
functionBody = Forward()
functionBody <<= originalTextFor(functionName + (Literal("(") + Optional( delimitedList ( functionBody | Word(alphanums + '_') | "''"),'') + Literal(")")))
現在它正在返回:
['function(param1,param2,param3)']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.