字符串“aaab”
正则表达式:/a*?b/
返回:aaab
原因:
/a*?b/,使用非贪婪的重复版本,它应该匹配字母b,通过在字母b前加最少的字母a。
先找到匹配第一个字母b的位置,再继续最少匹配a。应该是ab?
权威指南的解释是:
该模式的非贪婪版本在字符串的第一个字符处不匹配,所以该匹配将返回,甚至不考虑对后面的字符进行匹配
另可参考:http://www.cnitblog.com/yemoo/archive/2006/06/22/12675.html
个人理解如下: 在图解中,①为取出,②为返回。①和②同时匹配成功时,取②的值。
根据以上过程,得出结果为:aaab
字符串“aaab”
正则表达式:/a*?a/
返回:a
根据以上过程,得出结果为:a