Javascript 如何使用正则表达式读取括号内的所有字符串

Javascript 如何使用正则表达式读取括号内的所有字符串,javascript,regex,Javascript,Regex,我想把所有字符串放在一对括号内。例如,在将正则表达式应用于 "fun('xyz'); fun('abcd'); fun('abcd.ef') { temp('no'); " 输出应该是 ['xyz','abcd', 'abcd.ef']. 我尝试了许多选择,但没有得到想要的结果。 一个选项是 /fun\(.*?)/gi.exec(“fun('xyz');fun('abcd');fun('abcd.ef')”)将正则表达式存储在变量中,并在循环中运行它 var re = /fun\((.*?

我想把所有字符串放在一对括号内。例如,在将正则表达式应用于

"fun('xyz'); fun('abcd'); fun('abcd.ef') { temp('no'); " 
输出应该是

['xyz','abcd', 'abcd.ef'].
我尝试了许多选择,但没有得到想要的结果。 一个选项是

/fun\(.*?)/gi.exec(“fun('xyz');fun('abcd');fun('abcd.ef')”)
将正则表达式存储在变量中,并在循环中运行它

var re = /fun\((.*?)\)/gi,
    string = "fun('xyz'); fun('abcd'); fun('abcd.ef')",
    matches = [],
    match;

while(match = re.exec(string))
    matches.push(match[1]);
请注意,这仅适用于全局正则表达式。如果省略
g
,将有一个无限循环


还请注意,如果引号之间有一个
,它将给出一个不想要的结果。

您可以使用此代码来完成以下工作:

"fun('xyz'); fun('abcd'); fun('abcd.ef')".match(/'.*?'/gi);

您将获得
[“'xyz'”、'abcd'”、'abcd.ef'”
,其中包含字符串周围的额外
'

找到所需内容的最简单方法是使用此RegExp:
/[\w.]+(?=')/g


它将使用字母数字字符和点,您需要更改
[\w.]+
以添加更多符号。

那么,既然您已经有了答案,为什么还要在这里提问?
var string = "fun('xyz'); fun('abcd'); fun('abcd.ef')";
string.match(/[\w.]+(?=')/g); // ['xyz','abcd', 'abcd.ef']