[英]why regular expression .*? only match an empty string in javascript?
/.*?/.exec("abc");//output [""]
我认为.*?
是非贪婪的,它应该返回a
好吧,这是可以预期的,因为.*
表示0或更大,并放置?
您将其设为非贪婪,因此它匹配一个空字符串。
如果要匹配a
,则应使用:
/.+?/.exec("abc");
差异是+
而非*
,表示使用非贪婪量词匹配1个或多个字符。
通过使用*
代替eg +
您允许将空字符串作为非贪婪选项进行匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.