那些容易忽略的事4-(正则表达式反向引用\n)

本文通过实例详细解析了正则表达式中的反向引用机制,包括如何正确使用反向引用匹配重复的子字符串,并解释了JavaScript引擎处理反向引用的具体规则。

n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串

ps1:从左开始数,从左到优,也是从外到里,依次是\1,\2,\3...\n

ps2:匹配的子字符串。应以的是匹配的结果,而不是引用的对应的正则表达式。

ps3:第 n 个括号内引用\n是无意义的,js引擎会忽略。

ps4:只要含有n大于括号总数的引用时,返回null

 

 1 'aaabbbcccdddeeefff'.match(/[abc]\1/g);
 2 //null,符合ps4
 3 
 4 'aaabbbcccdddeeefff'.match(/([abc])\1/g);
 5 //["aa", "bb", "cc"],符合ps1,ps2
 6 
 7 'aaabbbcccdddeeefff'.match(/(([abc])\1)\1/g);
 8 //["aa", "bb", "cc"],符合ps1、ps2、ps3(第一个\1忽略)
 9 
10 'aaabbbcccdddeeefff'.match(/(([abc])\1)\2/g);
11 //同上
12 
13 'aaabbbcccdddeeefff'.match(/((([abc])\1)\2)\3/g);
14 //["aaa", "bbb", "ccc"]
15 //符合ps3,\1被忽略

 

转载于:https://www.cnblogs.com/xiexiaobao/p/5673290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值