语法
元字符:(pattern) 作用:用于反复匹配的分组
属性$1~$9 如果它(们)存在,用于得到对应分组中匹配到的子串
\1或$1 用于匹配第一个分组中的内容
\2或$2 用于匹配第一个分组中的内容
...
\9或$9 用于匹配第一个分组中的内容
用法示例
(A+)
//RegExp.$2 <-> ((B|C|D)+)
//RegExp.$3 <-> (B|C|D)
//RegExp.$4 <-> (E+)
$1~$9是正则表达式预定义的静态属性,通过RegExp.$1引用
分组嵌套关系说明
上述代码也可以说明分组的嵌套关系
输出:["ABCDE"]
reg.exec(str,'i');//输出:["ABCDE","A","BCD","D","E"]
RegExp.$1;//输出:"A"
RegExp.$2;//输出:"BCD"
RegExp.$3;//输出:"D"
RegExp.$4;//输出:"E"
这样就可以很明白的看出分组的嵌套关系了
总结来说:大的分组中存在小的分组时,小的分组是排在该大分组后面的分组,以此类推
第二部分
这部分主要讲解类似于"\1"这个东西的用法
分组匹配之反向引用
语法
元字符 \1~\9 作用:用来表示前面以匹配的字符或分组的一个引用
用法示例
参考文章:[原]
上面说的可能有些拗口,下面给一个例子:
输出: ["AA","99"]
所以,参照上边我所引用的文章中给出的 "关键字搜索高亮显示的正则表达用法" 的例子,我给出自己改进的小的DEMO
虽然这个DEMO没有用到任何的关于反向引用的知识点::>_<::
搜索的关键字
var text = " I am a text,and I have a keywords before this";//待匹配的文本
var reg = new RegExp("("+key+")","g");
text.replace(reg,"$1");//输出: " I am a text,and I have a keywords before this"
下面给大家详细介绍下正则表达式之反向引用
示例1:
反向引用,匹配重复的数字
([\d])====>\1
([3])====>\2
示例2: