跳转到主要内容
模块 5 · 第 2 课(共 4)课程中的18/32~8 min
模块课程(2/4)

类内的范围:`[a-z0-9]`

将每个角色一一列出是很乏味的。课程接受范围 带连字符 -: [a-z] 匹配任何小写字母,[0-9] 一个数字,[A-Z] 一个大写字母。

Code
Pattern: [a-z]+
Sample:  Ciao Mondo 123
          ^^^  ^^^^

该范围使用 代码点 顺序(基本上是拉丁字符的 ASCII): a-z 表示“从 a 的代码点到 a 的代码点的每个字符 z",所以 26 个字母。

组合范围

在单个类中,您可以混合多个范围和单个字符:

Code
[a-zA-Z0-9_]   identical to \\w (in ASCII)
[a-fA-F0-9]    hexadecimal digits
[0-9.]         digits or the dot (for decimal numbers)

顺序并不重要:[0-9a-z] 和 [a-z0-9] 是相同的。

范围和 ASCII 字符顺序

像 [a-z] 这样的范围严格遵循 ASCII 表中的字符顺序。写入无效范围(例如 [z-a])将触发正则表达式编译错误。应在开头或结尾放置文字破折号:[a-z-]。

尝试一下

锻炼#regex.m5.l2.e1
尝试:0加载中...

查找每个 6 个字符的十六进制序列(例如颜色代码 #1a2b3c)。数字从 0 到 9,字母从 a 到 f(大写或小写)。

正在加载编辑器...
显示提示

将 A-F 添加到范围中,或使用 i 标志。

3 次尝试后可用的解决方案

复习练习

锻炼#regex.m5.l2.e2
尝试:0加载中...

查找由 3 个大写字母后跟 4 个数字组成的每个产品代码(例如 ABC1234)。

正在加载编辑器...
显示提示

对于数字,您可以使用 \\d 或范围 [0-9]:此练习需要明确的 [0-9]。

3 次尝试后可用的解决方案

额外的挑战

锻炼#regex.m5.l2.e3
尝试:0加载中...

查找文本中的十六进制字符(数字 0-9 和字母 A-F,大写和小写)。

正在加载编辑器...
显示提示

组合三个范围:0-9、a-f、A-F。

3 次尝试后可用的解决方案