使用量词
上一篇《php正则表达式的元字符》介绍了一些元字符,其中最重要的是插入符号和美元符号。接下来,有3个元字符允许多次出现:a*将匹配0个或多个a(0个a、a、aa、aaa等),a+将匹配一个或多个a(a、aa、aaa等,但是至少必须有一个a),a?将匹配最多一个a(a或者没有a的匹配)。这些元字符全都充当模式中的量词,就像花括号一样。
字符 | 含义 |
---|---|
? | 0次或1次 |
* | 0次或多次 |
+ | 1次或多次 |
{x} | 正好出现x次 |
{x,y} | 在x次和y次之间(含x和y) |
{x,} | 至少出现x次 |
为了匹配一定数量的字母,可以把数量放在花括号{}之间,指出具体的数字,它可以只是一个最小值,或者同时指出最小值和最大值。因此,a{3}将匹配aaa,a{3,}将匹配aaa、aaaa等(3个或更多的a),a{3,5}则只匹配aaa、aaaa和aaaaa(在3个a和5个a之间)。
注意:量词应用于出现在它之前的内容,因此a?将匹配0个或一个a,ab?将匹配a及其后的0个或一个b,但是(ab)?将匹配0个或一个ab。因此,为了匹配color或colour,可以使用col(o|ou)r,也可以使用colou?r作为模式。
使用量词
在使用花括号指定字符数时,必须总是包括最小数字。最大数字是可选的:a{3}和a{3,}是可以的,但是a{,3}则不行。
尽管这个示例演示的是在编程时如何编写和执行你自己的正则表达式,但是可以通过搜索Internet获得大量的工作示例。