那些容易忽略的事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被忽略