正则表达式中圆括号的用法

var rgExp = /(^D*[0-9])/; 
var str = "this is fun 01 stuff";
var resu = str.match(rgExp);
document.writeln(resu);

结果为: this is fun 0,this is fun 0

如果使用圆括号的模式在匹配完成后,会记住这一匹配。被记住的值保存在结果数组中,此例中的结果中间有一个逗号,表明它们是数组的两项。第一个结果是匹配,第二个来自圆括号模式保存的值。如果不用圆括号括着整个模式,而只括其中一部分的话,比如/(^D*)[0-9]/,结果就是下面的例子。

var rgExp = /(^D*)[0-9]/; 
// or var rgExp = /^(D*)[0-9]/;
var str = "this is fun 01 stuff";
var resu = str.match(rgExp);
document.writeln(resu);

结果为 : this is fun 0,this is fun

第一项是匹配的字符串,第二项是来自括号模式保存的值。

如果改成/(^D*)([0-9])/,则结果会是三项,即 this is fun 0,this is fun ,0 

RegExp有一些特殊字符,被标记为$1,$2一直到$9,它们用于保存圆括号所找到的字串。括号模式匹配的值也可以使用,如:

var rgExp = /(w*)-*(w*)/;
var str = "java--script";
var resu = str.replace(rgExp,"$2_$1");
document.writeln(resu);

结果为: script_java

原文地址:https://www.cnblogs.com/lswit/p/4678778.html