1.4 使用字符组简写式

就像在本章开始看到的那样,\d可以像[0-9]一样匹配任意阿拉伯数字。请在上方文本框内试一试,和之前的表达式一样,下方的数字都被标亮了。这种正则表达式叫做字符组简写式(character shorthand),也叫转义字符(character escape)。但后一种称谓很容易造成误解,我会尽量不用。至于原因,稍后我再解释。

可以使用以下表达式来匹配电话号码中的任意数字:

  1. \d\d\d-\d\d\d-\d\d\d\d

重复\d三次和四次就可以分别匹配三个和四个数字。该表达式中的连字符是一个字面值,因此会被原样匹配。

除了和上面表达式一样,使用连字符本身(-)来匹配连字符之外,也可以用转义的大写D(\D),它匹配任何一个非数字字符。

以下示例使用了\D(而没有使用连字符本身)来匹配连字符:

  1. \d\d\d\D\d\d\d\D\d\d\d\d

这次整个电话号码包括连字符又都被标亮了。