声明量词

课后整理 2020-12-10

声明表示条件的意思。声明量词包括正向声明和反向声明两种模式。

正向声明

指定匹配模式后面的字符必须被匹配,但又不返回这些字符。语法格式如下:

匹配模式(?=匹配条件)

声明包含在小括号内,它不是分组,因此作为子表达式。

【示例1下面代码定义一个正前向声明的匹配模式。

var s = "one:1;two=2";
var r = /\w*(?==)/;                                    //使用正前向声明,指定执行匹配必须满足的条件 
var a = s.match(r);                                     //返回数组["two"]

在上面示例中,通过 (?==)锚定条件,指定只有在\w*所能够匹配的字符后面跟随一个等号字符,才能够执行\w*匹配。所以,最后匹配的是字符串"two",而不是字符串"one"。

反向声明

与正向声明匹配相反,指定接下来的字符都不必匹配。语法格式如下:

匹配模式(?!匹配条件)

【示例2下面代码定义一个反前向声明的匹配模式。

var s = "one:1;two=2";
var r = /\w*(?!=)/;                                     //使用反向声明,指定执行匹配不必满足的条件 
var a = s.match(r);                                     //返回数组["one"]

在上面示例中,通过(?!=)锚定条件,指定只有在“\w*”所能够匹配的字符后面不跟随一个等号字符,才能够执行\w*匹配。所以,最后匹配的是字符串"one",而不是字符串"two"。