如何理解javascript正则“反向引用”

JavaScript018

如何理解javascript正则“反向引用”,第1张

例如:

有这么一个表达式(\d)(\d)这里有两个子表达式,它们分别被圆括号括了起来,所谓的反向引用就是 引用前面的子表达式 ,例如(\d)(\d)\1\2 其中\1代表反向引用第一个子表达(\d).类似地\2就是反向引用第二个子表达式(\d)。再如(\d)(\d)(\d)\3 就是反向引用第三个子表达式。能理解了吧?

这是Javascript语言正则表达式中的反向引用,就是\1引用前面小括号中捕获组的数据(,),因为只有一个小括号(一个捕获组),所以第一个正则表达式\1是对的第二个正则表达式/apple(,5)orange\2/ 因为只有一个捕获组,而引用的\2是指引用第二捕获组,没有第二捕获组,所以是错误的如果第二个第二个正则表达式是这样/apple(,)(5)orange\2/那么等同于/apple,5orange5/,那样是可以的\n实际上就是反向引用其前面捕获组中的数据,有几个捕获组,就可以引用几个