第 2 课

字面量与元字符

字符类、量词、锚点与转义。

正则语法大致分两类:字面量(匹配自身)与 元字符(有特殊含义的符号)。

字面量与转义

字母和数字通常匹配自身:cat 匹配子串 cat

. * + ? [ ] ( ) { } | ^ $ \ 等元字符需要特别注意:

  • . 匹配 任意一个字符(部分模式下不含行终止符)
  • 要匹配字面点号,需转义:\.

不确定时,可用 字符类 写标点:[.] 匹配点号,避免转义争议。

字符类

[abc] 匹配 abc 中的任意一个字符。

常用简写(以 JavaScript 风格为例):

含义
\d数字 [0-9]
\w「单词」字符(因引擎而异,常为 [A-Za-z0-9_]
\s空白
\D, \W, \S上述的否定

范围:[a-z] 表示小写字母。若类内需要字面连字符,把它放在首尾。

量词

对前一个原子重复:

量词含义
*零次或多次
+一次或多次
?零次或一次
{3}恰好 3 次
{2,5}2 到 5 次
{2,}至少 2 次

贪婪与惰性: + 尽量多匹配;+? 尽量少匹配。解析带分隔符的字段时差异很大。

锚点

锚点含义(常见)
^输入或行首(多行模式下为行首)
$输入或行尾
\b单词边界

^https:// 保证 URL 出现在开头(或行首),而不是句子中间。

分组

( ... ) 将原子分组,量词作用于整组:(ab)+ 可匹配 ababab 等。

要点

小块、可验证的片段 拼模式:锚点 + 字符类 + 量词。每段只做一件事,复杂正则也会更易读。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览