字符集 []

[]字符集(字符类),含义:匹配括号内任意单个字符,不是全部。

1. 基础规则

  1. [abc] → 匹配 abc只匹配 1 个字符
  2. 范围简写:
    • [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 匹配:boybaybuybey 不匹配:bowy(中间两个字符)

4. 字符集 [] 内部特殊规则

[] 里面,大部分正则元字符不需要转义! 元字符:. ? * + () | \

  • [.?!]:匹配 . 或者 ? 或者 ! 在括号内 . 不再代表任意字符,就是普通点号,不用写 \.

例外:]-^ 在中括号里依然有特殊含义,需要注意:

  1. -:表示范围(a-z),如果想匹配减号,放到最前/最后 [-a-z]
  2. ^:放在 [] 最开头代表取反 [^a-z] → 匹配不是小写字母的任意单个字符
  3. ]:放在开头才被当作普通右括号

5. 小练习

  1. [0-9]:单个数字
  2. [aeiou]:单个元音字母
  3. [a-z0-9_]:小写字母/数字/下划线(等价 \w
  4. [.(),;]:匹配标点 . ( ) , ;

思考题

gr[ae]y 能匹配哪两个单词? 答案 gray、grey

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注