2.1 量词的一般形式

2018-12-11  本文已影响14人  马小跳_

根据上一章的介绍,可以用字符组[0-9]或者\d来匹配单个数字字符。现在用正则表达式来验证更复杂的字符串,比如大陆地区的邮政编码。

粗略看来,邮政编码并没有特殊的规定,只是6位数字构成的字符串,比如100000、030500、100858等。所以用正则表达式来表示就是\d\d\d\d\d\d。这样虽然不难理解,但\d重复了6次,读写都不方便。为此正则表达式提供了量词(quantifier),比如上面的表达式可以简写为\d{6},它使用阿拉伯数字表示次数。

量词还可以表示不确定的长度,其通用形式是{m,n},其中mn是两个数字(量词中的逗号之后绝对不能有空格),它限定之前的元素能够出现的次数,m是下限,n是上限(均为闭区间)。比如\d{4,6},就表示这个数字字符最少出现4次,最多出现6次。

如果不确定长度的上限,也可以省略。可以写成\d{m,},比如\d{4,}表示“数字字符出现4次以上”。

量词限定的出现次数一般都有明显的下限,如果没有,则默认为0。比如Ruby支持{,n}的记法,这时并不是不确定长度的下限,而是省略了下限为0的写法。不过这种用法不是所有的语言都通用的,所以最好写成{0,6}

表2-1 量词的一般形式

量词 说明
{n} 之前的元素必须出现n次
{m,n} 之前的元素最少出现m次,最多出现n次
{m,} 之前的元素最少出现m次,无上限
{0,n} 之前的元素可以不出现,也可以出现,最多出现n次
上一篇下一篇

猜你喜欢

热点阅读