正则表达式/ba/w*/b匹配单词“anterior”的过程如图2.10所示,匹配的具体步骤如下:
(1)匹配单词的开始位置;
(2)在步骤①时匹配字符a;
(3)匹配字符a之后,该表达式可以直接通过步骤②匹配到单词的结束位置,并完成整个匹配过程,从而匹配单词“a”;
(4)该表达式在匹配字符a之后,可以通过步骤③来匹配任何单词字符;
(5)重复步骤④一次或多次,即匹配一个或多个任何单词字符;
(6)匹配到单词的结束位置,并完成整个匹配过程,从而匹配到以字符a开头的长度大于1的单词。
限定符除了使用*、+、?之外,还可以使用数字直接指定重复的次数。{n}表示重复n次;{n,}表示至少重复n次,而最多重复的次数不限制;{n,m}(其中,n<=m)表示至少重复n次、最多重复m次。以下正则表达式匹配3位的整数,该正则表达式和正则表达式/d/d/d等价。
/d{3} (41)
以下正则表达式匹配3位以上(包括3位)的整数,该正则表达式和正则表达式/d/d/d/d*或/d/d/d+等价。
/d{3,} (42)
以下正则表达式匹配3位或4位的整数,该正则表达式和正则表达式/d/d/d/d?等价。
/d{3,4} (43)
以下正则表达式匹配当前国内的手机号码:即以字符串“13”开头的、后接连续9个数字的字符串。
13/d{9} (44)
以下正则表达式匹配当前国内部分地区的固定电话号码。其中,号码的前3位为区号,后8位为本地号码,区号和本地号码使用连接符号“-”进行连接。
0/d{2}-/d{8} (45)
以下正则表达式匹配当前国内部分地区的固定电话号码。其中,号码的前4位为区号,后7位为本地号码,区号和本地号码使用连接符号“-”进行连接。
0/d{3}-/d{7} (46)