正则的[],(.)*?和(.*?),贪婪和惰性

1.在[]中的表达式不要使用 .,要不然效果达不到

2.(.)?和(.?)的区别,前者分组只会匹配最后一个字符,而(.?)会获取匹配的整个串,此处的?是惰性匹配,

/a(.*?)c/g.exec("aabcdefc     dd");
==>["aabc", "ab"];此处"ab"就是(.*?)的内容
/a(.)*?c/g.exec("aabcdefc     dd");
==>["aabc", "b"];此处"b"就是(.)*?的内容

3.惰性匹配和贪婪匹配

贪婪匹配会尽量多的去匹配字符,惰性只会尽可能少的匹配,*就是贪婪匹配,*?是惰性匹配,具体的惰性匹配表如下:

表5.懒惰限定符

代码/语法说明
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n,}?重复n次以上,但尽可能少重复
/a(.*?)c/g.exec("aabcdefc     dd");
==>["aabc", "ab"];此处匹配的是"aabc"
/a(.)*c/g.exec("aabcdefc     dd");
==>["aabcdefc", "f"];此处匹配的是"aabcdefc",比上面的aabc串长
/a(.*)c/g.exec("aabcdefc     dd");
==>["aabcdefc", "abcdef"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值