见下面的代码
var re = new RegExp("j.*t");
var str = "javascript is not java and script. javascript is just javascript";
var execresult = re.exec(str);
console.log(execresult);
var matchresult = str.match(re);
console.log(matchresult);
都返回
["javascript is not java and script. javascript is just javascript"]
我的期望是它会返回第一个匹配的文字" javascript"单独,但整个句子被发现匹配。为什么?是exec的工作方式吗?
我在jsbin.com执行此操作,如果这很重要。
答案 0 :(得分:2)
改变贪婪!
j.*?t
额外的标记要求尽可能少地抓住。
答案 1 :(得分:0)
要捕获表达式可以使用的每个值,我建议这样做:
(j.*?t)
您可以在此处的演示中看到 - DEMO - 返回5个结果。