使用正则表达式匹配多个结果

时间:2019-02-24 06:03:29

标签: javascript regex

嗨,我想通过javascript中的正则表达式匹配多个结果,我尝试了下面的代码。我只想匹配选项旁边的数字。

/Option\("(\d+)"/g.exec(string)

以上结果仅返回1个结果,我在stackoverflow中进行了搜索,他们被告知要使用match,所以我在下面尝试了

string.match(/Option\("(\d+)"/g);

以上返回多个结果,但具有完整的字符串,我只想要所有可用的(\ d +)部分。

编辑:输入字符串在

下方
var o = 'new Option("26500","26,500.00" ); var o = new Option("26700","26,700.00" ); var o = new Option("26800","26,800.00" )';

1 个答案:

答案 0 :(得分:2)

您可以对要捕获的数字后面的字符使用正向超前查询,以使用String.match获得所有结果:

(\d+)(?="\s*,\s*")

如果您的JavaScript版本支持后向隐藏,则还可以使用正向后向隐藏:

(?<=Option\(")(\d+)

regex101.com上的后向演示

const str = 'new Option("26500", "26,500.00" ); var o = new Option("26700" ,"26,700.00" ); var o = new Option("26800","26,800.00" )';
const re = /(\d+)(?="\s*,\s*")/g;
console.log(str.match(re));