7.3 匹配特定次数

使用花括号可以限制某个模式在某个范围内匹配的次数,未经修饰的量词就是贪心量词。例如:

  1. 7{1}

会匹配第一次出现的7。要匹配一个或多个数字7,只要加一个逗号即可:

  1. 7{1,}

你可能已经意识到了

  1. 7+

  1. 7{1,}

本质上是一样的,而:

  1. 7*

  1. 7{0,}

也是相同的。另外,

  1. 7?

  1. 7{0,1}

也是一样的。

还可以匹配mn次,比如:

  1. 7{3,5}

会匹配三个、四个以及五个7。

可以看出,花括号(或者说范围语法)是最灵活和精确的量词。表7-2总结了这些特性。

表7-2 范围语法总结

语法描述
{n} 精确匹配n次
{n,} 匹配n次或更多次
{m,n} 匹配m至n次
{0,1} 与?相同 (零次或一次)
{1,0} 与+相同 (一次或更多)
{0,} 与*相同 (零次或更多)