先行断言和ES6新增后行断言及具名组匹配

本文详细介绍了正则表达式中的先行断言、先行否定断言、后行断言和后行否定断言的用法,以及它们在匹配过程中的特点。此外,还探讨了具名组匹配的概念,如何提高正则表达式的可读性和可维护性,以及具名组未匹配时的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"先行断言"指的是,x只有在y前面才匹配,必须写成/x(?=y)/的形式。比如,只匹配百分号之前的数字,要写成/\d+(?=%)/。
"先行否定断言"指的是,x只有不在y前面才匹配,必须写成/x(?!y)/的形式。比如只匹配不在百分号之前的数字,要写成/\d+(?!%)/。

//先行断言括号之中的部分(?=%)是不计入返回结果的。
/\d+(?=%)/.exec('100% of US presidents have been male')//["100"]
/\d+(?!%)/.exec('it is worth about ¥90')//["90"]

"后行断言"整好与"先行断言"相反,x只有在y后面才匹配,必须写成/(?<=y)x/的形式,比如只匹配$符号之后的数字,要写成/(?<=$)\d+/。"后行否定断言"则与"先行否定断言"相反,x只有不在y后面才匹配,必须写成/(?<!y)x/的形式。比如只匹配不在$符号后面的数字,要写成/(?<!$)\d+/。

//"后行断言"括号中的部分(?<=\$)也是不计入返回的结果
/(?=\$)\d+/.exec
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值