簡體   English   中英

PyParsing:如何解析函數調用並將其作為字符串返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM