引用
\1的用法
例/['"][^'"]*['"]/
它并不能要求开始和结束的引号匹配(如两个都是单引号,或者两个都是双引号)。
如果要求开始和结束的引号相匹配,可以使用如下引用:
/(['"])[^'"]*\1/
即可以匹配形如 "abc", 'abc',不会匹配"abc','abc"
\1 匹配的是第一个带括号的子表达式所匹配的模式。它时时了一条约束,那就是开始的引号必须和结束的引号相匹配。
值得注意的是,在字符类中使用是不合法的,所以不能编写:
/(['"])[^\1]*\1/
因为上面说了\1是一种模式(不是一个字符),跟? * + 一样。是不能放在字符类中的。
\1带表的是从左边起的第1个左括号引用,以此类推。但是有意外,?:修饰的的括号不参与引用,只是组合。
如:/(a)(?:b)(c)\2/这里的\2匹配的是(c)不是(?:b)
/
锚(?=表达式),(?!表达式)
(?= 表达式)指定接下来的字符必须被匹配但不真正进行匹配
(?!表达式)
如:/JAVA (?!Script)([A-Z])\w*/ 它与JAVABeans匹配,但不与JAVASript匹配
(?<! 正后向锚 (?<=反后向锚(?# 注释和其它
这是perl的高级特性,ECMAScript不支持