解析Ruby字符串以提取方法名称

时间:2019-03-09 04:09:55

标签: regex ruby onigmo

我有一个字符串,例如

str1='f(x)myfunction1("a",1,"b"),f(x)myfunction2("c","d",4),
f(x)myfunction3("e","f","g",3)'

我想在创建数组并提取函数名称和相关参数的过程中使用scan或match编写正则表达式。

myFunctionArry[0]='myfunction1("a",1,"b")'
myFunctionArry[1]='myfunction2("c","d",4)'
myFunctionArry[2]='myfunction3("e","f","g",3)'

提取的正确方法是什么?我尝试了正面和负面的前瞻,但无法正确划分每个函数的名称

str1.scan(/(?<=f\(x\))(.*)(?=\))/)似乎给了我错误的结果。

1 个答案:

答案 0 :(得分:2)

您几乎完全正确。

使*为非贪心,并在匹配项中加入右括号。

(?<=f\(x\))(.*?\))

https://regex101.com/r/8SEm9G/1