我们刚刚学习了如何创建一个匹配或排除特定字符的正则表达式,但如果我们想匹配一组连续范围内的字符呢?难道只能一个个地列出来吗?
幸运的是,当使用方括号语法时,我们可以使用连字符(-)来表示一个字符范围,这是一种简写方式。例如,正则表达式 [0-6] 只会匹配从 0 到 6 的任何一个数字字符,不会匹配其他内容。同样地,[^n-p] 会匹配除了 n 到 p 的字母以外的任意一个字符。
你也可以在一个方括号中同时使用多个字符范围,也可以混合添加单个字符。比如常用的源字符 \w,就等价于 [A-Za-z0-9_],它常被用来匹配英文文本中的字母、数字或下划线。类似于 \d 和 \D, 源字符 \W 可以用来排除所有的字母、数字和下划线。
在下面的练习中,请注意“匹配行”和“跳过行”都有明确的字符模式。你需要使用方括号表示法,分别为每一行中的每个字符创建匹配或排除的规则。请特别注意:正则表达式是区分大小写的,小写字母 a-z 和大写字母 A-Z 匹配的范围是不同的。
| Task | Text | |
| 匹配 | Ana | ![]() |
| 匹配 | Bob | ![]() |
| 匹配 | Cpc | ![]() |
| 跳过 | aax | ![]() |
| 跳过 | bby | ![]() |
| 跳过 | ccz | ![]() |
| 提示 | 所有字符都是连续的,因此你可以在正则表达式中使用不同的范围,比如 [A-C][n-p][a-c],来只匹配前面三行。 |