特别字符:( ) 作用:标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
子表达式是一个大的表达式的一部分,把一个表达式划分为多个子表达式的目的是为了把那些子表达式当作一个独立的元素来使用。子表达式必须用 () 括起来

在PHP中,正则表达式是用引号括起来的,要使用\1等表达式需要改为\\1
在JS中,无$0

以JS的为例:

str为:

<img alt="1" src="img1src" />
<img alt="2" src="img2src" />
<img alt="3" src="img3src" />
<img alt="4" src="img4src" />

匹配一:

str = str.replace(/\<img alt="." src="(.*?)" \/\>/gi,"$1");
console.log(str);
//这里的$1指的是括号里的(.*?)
/*
输出:
img1src
img2src
img3src
img4src
*/

匹配二:

str = str.replace(/\<img alt="(.*?)" src="(.*?)" \/\>/gi,"$1 $2");
console.log(str);
// 第一个$s1 指是第一个括号里的值,同理,第N个值得是第N个括号里的值
/*
输出:
1 img1src
2 img2src
3 img3src
4 img4src
*/

子表达式的嵌套:
在表达式 ((A)(B(C))) 中,存在以下几个子表达式:

$1: ((A)(B(C)))
$2: (A)
$3: (B(C))
$4: (C)