标签: javascript regex match non-greedy
/.*?/.exec("abc");//output [""]
我认为.*?非贪婪,应该返回a
.*?
a
答案 0 :(得分:6)
这是预期的,因为.*表示0或更多,并且通过放置?使其非贪婪,因此它匹配空字符串。
.*
?
如果您想匹配a,那么您应该使用:
/.+?/.exec("abc");
DIfference是+而不是*,这意味着使用非贪婪量词匹配1个或多个字符。
+
*
答案 1 :(得分:0)
使用*代替例如+您允许将空字符串作为非贪婪选项进行匹配。