嗨,我想通过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" )';
答案 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));