[]:字符集(字符类),含义:匹配括号内任意单个字符,不是全部。
1. 基础规则
[abc]→ 匹配a或b或c,只匹配 1 个字符- 范围简写:
[a-z]:任意小写英文字母(a~z)[A-Z]:任意大写英文字母(A~Z)[0-9]:任意数字(0~9)[a-zA-Z0-9]:大小写字母+数字
[abcdefghijklmnopqrstuvwxyz]等价于[a-z],同样只匹配单个小写字母
2. 量词搭配
^[a-z]+
^:行开头[a-z]:单个小写字母+:前面这个字符,至少1次,可多次 含义:匹配一行开头连续的小写字母。
注意区分:
[a-z]→ 1个小写字母[a-z]+→ 1个或多个连续小写字母
3. 示例:b[oaue]y
b[oaue]y
- 固定开头
b - 中间:
o/a/u/e任选一个 - 固定结尾
y匹配:boy、bay、buy、bey不匹配:bowy(中间两个字符)
4. 字符集 [] 内部特殊规则
在 [] 里面,大部分正则元字符不需要转义! 元字符:. ? * + () | \
[.?!]:匹配.或者?或者!在括号内.不再代表任意字符,就是普通点号,不用写\.
例外:
]、-、^在中括号里依然有特殊含义,需要注意:
-:表示范围(a-z),如果想匹配减号,放到最前/最后[-a-z]^:放在[]最开头代表取反[^a-z]→ 匹配不是小写字母的任意单个字符]:放在开头才被当作普通右括号
5. 小练习
[0-9]:单个数字[aeiou]:单个元音字母[a-z0-9_]:小写字母/数字/下划线(等价\w)[.(),;]:匹配标点 . ( ) , ;
思考题
gr[ae]y 能匹配哪两个单词? 答案 gray、grey