|
模式中的数量词表示前面项重复的次数。你已经见过三个数量词:*, +, ?。如果这三个数量词仍不能满足你的要求,那可以
使用花括号({}),花括号中有2 个数字,由逗号隔开,表示前面一项允许重复的次数。
模式/a{5,15}/将匹配5 个到15 个a 中的任意一个(包括5,和15)。如果a 出现了3 次,则次数太少,而不能匹配上;如果
出现5 次,则匹配上了;如果出现10 次,仍然匹配上。如果出现20 次,仍将匹配上,前15 个将匹配上。
如果省略掉第二个数字(逗号留下),现在没有上限了。因此,/(fred){3,}/将在一行中有3 个或者更多个fred 时匹配上(fred
之间不允许有其它字符,包括空格)。这里没有上限,因此如果有88 个fred,仍将匹配上。
如果除了上限数字外,逗号也被省略了,那将匹配确定的次数:/\w{8}/将严格的匹配8 个word(字母,数字,下划线)(可
能被其中一个长字符串部分所匹配上)。/,{5}chameleon/将匹配“,,,,,,chmeleon”。
前面介绍过的三个数量词是简写形式。星号(*)等同于{0,},表示0 个或多个。加号(+)等同于{1,},表示1 个或多个。而问
号(?)则等同于{0,1}。在实际程序中,很少使用花括号的数量词,前面介绍的三个数量词(*,+,?)基本已能应付。 |
|