Aspire

【正则表达式系列】贪婪与非贪婪模式

发布时间:6年前热度: 2922 ℃评论数:

贪婪匹配模式

定义

正则表达式去匹配时,会尽量多的匹配符合条件的内容


标识符

+,?,*,{n},{n,},{n,m}

匹配时,如果遇到上述标识符,代表是贪婪匹配,会尽可能多的去匹配内容

-------ex1-----------

var str='aacbacbc';

var reg=/a.*b/;

var res=str.match(reg);


// aacbacb index为0

console.log(res);


-------ex2--------

var str='aacbacbc';

var reg=/ac.*b/;

var res=str.match(reg);


// acbacb index为1

console.log(res);




非贪婪匹配模式

定义

正则表达式去匹配时,会尽量少的匹配符合条件的内容 也就是说,一旦发现匹配符合要求,立马就匹配成功,而不会继续匹配下去(除非有g,开启下一组匹配)


标识符

+?,??,*?,{n}?,{n,}?,{n,m}?

可以看到,非贪婪模式的标识符很有规律,就是贪婪模式的标识符后面加上一个?

---------ex1----------

var str='aacbacbc';

var reg=/a.*?b/;

var res=str.match(reg);


// aacb index为0

console.log(res);


---------ex2----------

var str='aacbacbc';

var reg=/ac.*?b/;

var res=str.match(reg);


// acb index为1

console.log(res);


源码安装、技术讨论、二次开发等联系微信:

【正则表达式系列】贪婪与非贪婪模式

栏目导航

  1. PHP
  2. Go
  3. Mysql
  4. Linux
  5. 前端
  6. 杂谈

手机扫码访问