注意:下文中提到的某些重复语法在所有正则表达式实现中并不完全支持。
到目前为止,我们已经学习了如何指定匹配字符的范围,但如果我们想要匹配重复出现的字符个数呢?一种方法是直接明确写出需要的字符数量,例如:\d\d\d,它会匹配恰好三个数字。
更方便的一种方式是使用大括号 {} 语法来指定字符的重复次数。例如,a{3} 表示匹配连续出现三次的字符 a。某些正则引擎甚至支持重复次数范围的写法,比如:a{1,3} 表示匹配 至少 1 次、至多 3 次 的 a 字符。
这个“重复限定符”可以用于任意字符,包括特殊元字符。例如:
在下面的几行字符串中,最后一行只有一个 z,这并不是我们认为的俚语 “wazzup?” 的标准拼写。请尝试使用上面提到的大括号语法,写一个只匹配前两个拼写的正则表达式模式。
| Task | Text | |
| 匹配 | wazzzzzup | ![]() |
| 匹配 | wazzzup | ![]() |
| 跳过 | wazup | ![]() |
| 提示 | 前两行中包含多个 'z' 字符需要匹配,因此正则表达式 waz{3,5}up 可以匹配所有包含 3 到 5 个 z 的字符串。 |