Regex 在函数调用中使用可选值进行解析
我有一个如下形式的函数调用:Regex 在函数调用中使用可选值进行解析,regex,Regex,我有一个如下形式的函数调用: myFunc(X,Y,Z=c("1","2","3")) { .. code .. } 我能够将外部参数声明提取为:X,Y,Z=c(“1”,“2”,“3”) 我试图使用正则表达式来提取变量名;但是,对“,”的简单拆分不起作用,因为变量Z具有与之关联的默认值。我可以使用什么正则表达式来获取这三个参数(Z可以使用另一个正则表达式将其与默认值分开,稍后使用“=”字符作为进一步的步骤) 有什么想法吗?这不是正常工作的代码。请研究编写R函数,也许是从@hadley's
myFunc(X,Y,Z=c("1","2","3")) {
.. code ..
}
我能够将外部参数声明提取为:X,Y,Z=c(“1”,“2”,“3”)
我试图使用正则表达式来提取变量名;但是,对“,”的简单拆分不起作用,因为变量Z
具有与之关联的默认值。我可以使用什么正则表达式来获取这三个参数(Z可以使用另一个正则表达式将其与默认值分开,稍后使用“=”字符作为进一步的步骤)
有什么想法吗?这不是正常工作的代码。请研究编写R函数,也许是从@hadley's,一本很好的读物。哦,是的,我删除了“R”标记,因为这个问题很一般,可能在其他编程语言环境中有所帮助,很抱歉专门强加在“R”论坛上。你需要注意打开“东西”,如引号、括号、记号、括号,在查找下一个逗号之前,再次查找结束形式。试试看,或者。@GG\u Python:这个怎么样:
(\w+)(=(?:,|\s*=)
+1、作品很棒;后续尝试使其包含实际的默认参数(即匹配Z=c(“1”、“2”、“3”),而不仅仅是Z…)。快速修复?尝试在不同的位置添加括号,但大多数情况下它与“=”。。我猜这与捕获组和非捕获组有关?