我正在尝试分析函数调用:
foo(arg1, arg2 ...)
匹配foo
、arg1
、arg2
。但是我遇到的问题是,arg1
可能是bar(x1, x2)
里面有逗号
当我使用this toolwith ([\w]+)\((.*?)\)$
作为我的正则表达式,foo(bar(2,'a'), bas())
作为我的测试用例时,我能够捕获foo
和整行参数bar(2,'a'), bas()
,但我不确定如何分别捕获参数
我想捕捉:
如何修改python正则表达式以分别捕获这些参数?
Tags:
试试这个正则表达式:
([\w]+)\((.*?), (.*?)\)$
。它适用于两个论点。参见测试here(.*?)
-查找尽可能短的参数,
-,
(分隔参数)(.*?)
-查找第二个参数如果希望它具有1+个参数的动态,可以使用以下正则表达式:
([\w]+)\((.*?)(?:, (.*?))*\)$
。参见测试here(.*?)
-查找第一个可能的最短参数(?:, (.*?))*
-查找下一个0-n个, (.*?)
,
-逐字匹配,
,但不捕获(.*?)
-匹配另一个参数相关问题 更多 >
编程相关推荐