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