关于非贪婪模式
# 具体遇到的问题
老师,看一下下面给的代码中的注释是否正确? 是这样理解吗?
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
var ud = 'aaacauebbc';
var orc = /a+?b/; // 问号 ? 表示转为非贪婪模式
console.log(orc.exec(ud));
/*
结果是null。 具体解析如下:
首先我们看一下正则中的具体内容:/a+?b/ 表示为至少有一个a,且是非贪婪的。后面再跟上一个b。注意是一个b因为没有量词只有b这个条件。而非贪婪模式需要先满足这个大条件再去匹配。
我们看一下字符串ud中没有一个是a后面紧挨着一个b,因此匹配不到就会返回null
如果字符串改为 var ud = 'aaacauebabc'; 那会返回ab,因为要先满足大条件再去看量词等其它的附加条件。
*/
源自:正则表达式
3-17 非贪婪的重复
17
收起
正在回答
1回答
同学你好,理解正确,先要满足a挨着b这个条件,然后再考虑是否满足贪婪非贪婪等附加条件。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星