我有一个变量,贪婪行为
var inp = "B123213";
现在,当我申请了下面的正则表达式,
var rg = /\d+/;
,并执行String
match
操作,
console.log(inp.match(rg));
我得到输出为123213
,表示表达式是贪婪的。但是,当我使用*
而不是+
时,表达式不会返回匹配项。请帮我理解为什么返回空匹配。它不应该返回相同的结果。
由于医生说约?
,
如果之后的任何量词*,+,?,或{}的立即使用,使得 量词非贪婪(匹配尽可能少的字符), 而不是默认的,这是贪婪的(尽可能多地匹配 个字符)。例如,应用/ \ d + /到“123abc” 匹配“123”。但是应用/ \ d +?/到相同的字符串只匹配 “1”。
我认为只有在应用/\d*?/
时才会有空的匹配。当*
使用它
学习和玩正则表达式的一个很棒的网站是http://regex101.com/我帮助我大大学习和玩正则表达式。 – 2014-10-29 18:44:52