正则表达式之非捕获组

有什么用

非捕获类,在正则很简单时,没什么用,只有在正则中大量使用()时才有用

详细说明-举例说明

匹配2013-05-07,你可以用\d{4}-\d{2}-\d{2},你也可以加个括号(\d{4})-(\d{2})-(\d{2}),意思是完全一样的,但加了括号,就意味括号里面的东西,你捕获到了,你可以再使用,这就是捕获组的概念

上面这种情况,你是没必要加括号,但是,有时候你必不得已要加括号,比如说匹配1-100的数字,你会用^([1-9]?[0-9]|100)$,但是这个时候,会默认把括号里的东西捕获过来以供你下次使用,其实,你只是用着正则匹配而已,因此就造成了内存浪费,当正则复杂时,效率更加低下,因此才有了非捕获组,上面的就可以改写成^(?:[1-9]?[0-9]|100)$

小结

非捕获组跟匹配没什么关系,只是为了提高效率

转载于:https://www.cnblogs.com/chuanlong/archive/2013/05/07/3065497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值