首页 > 技术文章 > JavaScript正则表达式-反向引用

snzigod 2014-12-23 21:11 原文

使用括号“()”进行分组,使子表达式(子模式)可以作为整体独立被修饰,子表达式所匹配的结果会被记录下来并可以单独被访问。

/(a(b(cd){2})+)EF/

则各引用分别对应:

\1  对应(a(b(cd){2})+)

\2  对应(b(cd){2})

\3  对应(cd)

 

str = "pic1.gif gif2.gif pic.gif";

reg = /(.+)([1-4])\.\1/;

arr_m = str.match(reg);//arr_m = ["gif2.gif","gif","2"]

解析:(.+)匹配gif

([1-4])匹配1~4之间的一个数字

\.紧跟"."

\1引用第一个子表达式

 

str = "numA2 numA2numB3C4C4 numD5E6E6numD5E6D5";

reg = /(num([A-Z][0-9]){2})\2+/g;

arr_m = str.match(reg);//arr_m = ["numB3C4C4","numD5E6E6"];

 

str = "Happy is the Selection";

reg = /(^\w+)\b(.*)\b(\w+$)/;

arr_m = str.match(reg);

str2 = str.replace(reg,)

推荐阅读