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

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被忽略

 

posted @ 2016-07-15 13:38  谢小宝  阅读(888)  评论(0编辑  收藏  举报