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']