javascript正则表达式(3)——贪婪模式与分组

贪婪模式

"12345678"          正则: \d{3,6}

贪婪模式:会尽可能多的匹配,直到匹配失败

例如:'12345678'.replace(/\d{3,6}/g,'X');

结果:"X78"

非贪婪模式

"12345678"          正则: \d{3,6}

非贪婪模式:让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试

方法:在量词后面加上?即可

例如:'12345678'.match(/\d{3,6}?/g);

结果:["123","456","789"]


例如:'12345678'.replace(/\d{3,6}?/g,'X');

结果:"XX78"

分组

如果我们想匹配字符串Byron连续出现3次的场景

可能会用到 Byron{3}

但实际与我们的预期不符合。

使用()可以达到分组的功能,使量词作用于分组   (Byron){3}

例如:'a1b2c3d4'.replace(/([a-z]\d){3}/g,'X');

结果:"Xd4"

使用 | 可以达到或的效果

Byron|Casper



反向引用

例如:2016-11-6=>11/6/2016

代码:'2016-11-6'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1');

结果:11/6/2016



忽略分组

不希望捕获某些分组,只需要在分组内加上?:就可以

如:(?:Byron).(ok)



只有ok被视为一个分组,记为$1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值