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

字符集:`[abc]`

当像 \d 或 \w 这样的预定义类不够用时,您可以定义一个 自定义字符集带有方括号[...]。括号内, 每个字符都是一个替代字符:正则表达式匹配任何一个的一个 列出的元素。

Code
Pattern: [aeiou]
Sample:  ciao mondo
         ^   ^^  ^^

每个元音都是独立的匹配。括号匹配恰好一个字符 (除非量化): [aeiou]+ 匹配连续的元音序列。

括号内的特殊字符

在 [...] 内部,大多数元字符失去其特殊含义:

  • [.] 内的 . 匹配文字点(不需要转义)。
  • *、+、?、(、)、{、} 是文字。
  • \ ] ^ 仍然是特殊的,必须转义或小心定位。
Code
Pattern: [.,;:]
Match: any punctuation mark among dot, comma, semicolon, colon.

方括号内的特殊字符

大多数正则表达式元字符(.、*、+、? 等)在括号内会失去其特殊含义,并被视为文字字符。只有开头的破折号 -、插入符号 ^ 和反斜杠 \\ 保留操作含义。

尝试一下

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

逐一查找文本中的每个元音(a、e、i、o、u,包括大写)。

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

在括号内添加大写元音,或使用 i 标志。

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

复习练习

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

查找标点符号:点、逗号、分号、冒号、感叹号、问号。

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

[.,;:!?] 内的所有字符都是原义字符,不需要转义。

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

额外的挑战

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

查找文本中所有意大利重音元音 (`àèéìòù`)。

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

列出方括号内的重音字母。

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