模块 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 次尝试后可用的解决方案