第6课:匹配重复字符

注意:下文中提到的某些重复语法在所有正则表达式实现中并不完全支持。

到目前为止,我们已经学习了如何指定匹配字符的范围,但如果我们想要匹配重复出现的字符个数呢?一种方法是直接明确写出需要的字符数量,例如:\d\d\d,它会匹配恰好三个数字。

更方便的一种方式是使用大括号 {} 语法来指定字符的重复次数。例如,a{3} 表示匹配连续出现三次的字符 a。某些正则引擎甚至支持重复次数范围的写法,比如:a{1,3} 表示匹配 至少 1 次、至多 3 次 的 a 字符。

这个“重复限定符”可以用于任意字符,包括特殊元字符。例如:

  • w{3}:匹配连续三个 w
  • [wxy]{5}:匹配 5 个字符,每个字符可以是 w、x 或 y
  • .{2,6}:匹配任意字符,数量在 2 到 6 个之间

在下面的几行字符串中,最后一行只有一个 z,这并不是我们认为的俚语 “wazzup?” 的标准拼写。请尝试使用上面提到的大括号语法,写一个只匹配前两个拼写的正则表达式模式。

练习 6: 匹配重复字符
Task Text  
匹配 wazzzzzup To be completed
匹配 wazzzup To be completed
跳过 wazup To be completed
提示

前两行中包含多个 'z' 字符需要匹配,因此正则表达式 waz{3,5}up 可以匹配所有包含 3 到 5 个 z 的字符串。

解决上面的问题以继续到, 或者可以参考答案