您好,我想通过 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" )';
最佳答案
您可以对要捕获的数字后面的字符使用正向前瞻,以使用 String.match
获取所有结果:
(\d+)(?="\s*,\s*")
如果您有支持lookbehinds的JavaScript版本,您还可以使用正向lookbehind:
(?<=Option\(")(\d+)
regex101.com上的lookbehind演示
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));
关于javascript - 使用正则表达式匹配多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54849231/