正则表达式速查表

快速查找常用的正则表达式模式

A 字符类

字符 含义 示例
. 任意字符(除换行符) a.c 匹配 "abc", "a1c"
\d 数字 [0-9] \\d 加量词匹配3位数字如"123"
\D 非数字 [^0-9] \D+ 匹配 "abc"
\w 单词字符 [a-zA-Z0-9_] \w+ 匹配 "hello123"
\W 非单词字符 \W+ 匹配 "!@#"
\s 空白字符 \s+ 匹配 " "
\S 非空白字符 \S+ 匹配 "abc"
[abc] 字符集(a 或 b 或 c) [abc] 匹配 "a", "b", "c"
[^abc] 反向字符集(非 abc) [^abc] 匹配 "d", "e", "f"
[a-z] 范围(小写字母) [a-z]+ 匹配 "hello"

B 锚点(位置匹配)

字符 含义 示例
^ 字符串开头 ^hello 匹配开头的 "hello"
$ 字符串结尾 world$ 匹配结尾的 "world"
\b 单词边界 \btest\b 匹配单词 "test"
\B 非单词边界 \Btest\B 匹配 "atestb" 中的 "test"

C 量词

量词 含义 示例
* 0 次或多次 \d* 匹配 "", "1", "123"
+ 1 次或多次 \d+ 匹配 "1", "123"
? 0 次或 1 次 \d? 匹配 "", "1"
n 恰好 n 次 数字加括号n表示精确匹配n次,如\\d3匹配3位数字
n, 至少 n 次 数字加括号n,表示至少n次,如\\d2,匹配2位或更多数字
n,m n 到 m 次 数字加括号n,m表示n到m次,如\\d2,4匹配2到4位数字

💡 贪婪 vs 惰性

默认情况下,量词是贪婪的(尽可能匹配更多)。添加 ? 使其变为惰性(尽可能匹配更少)。

  • *?+???n,m? 是惰性版本
  • .* 贪婪匹配到尽可能多
  • .*? 惰性匹配到尽可能少

D 分组与引用

语法 含义 示例
(abc) 捕获分组 括号捕获匹配内容供后续使用
(?:abc) 非捕获分组 括号仅用于分组,不捕获内容
\1 反向引用第1个分组 (\w)\1 匹配 "aa", "bb"
| 或运算 a|b 匹配 "a" 或 "b"

E 先行断言

语法 含义 示例
(?=abc) 正向先行(后面是 abc) \d(?=px) 匹配 "1px" 中的 "1"
(?!abc) 负向先行(后面不是 abc) \d(?!px) 匹配 "1ab" 中的 "1"
(pos-lookbehind-abc) 正向后行(前面是 abc) (pos-lookbehind-$)\d+ 匹配 "$100" 中的 "100"
(neg-lookbehind-abc) 负向后行(前面不是 abc) (neg-lookbehind-$)\d+ 不匹配 "$100"

F 常用示例

邮箱地址

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]2,

匹配大多数常见邮箱格式

中国手机号

1[3-9]\\d9

匹配以 1 开头,第二位 3-9 的 11 位号码

日期 (YYYY-MM-DD)

\\d4-\\d2-\\d2

匹配标准日期格式

HTTP(S) URL

https?://[\\w.-]+(?:\\.[a-z]2,)?

匹配 http/https 开头的网址

IPv4 地址

(\\d1,3\\.)3\\d1,3

匹配标准 IPv4 格式(未验证范围)

身份证号

[1-9]\\d5(18|19|20)\\d2(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d3[\\dXx]

匹配 18 位身份证号码

想深入学习?

从基础开始系统学习正则表达式,掌握文本处理的强大工具。

开始学习教程 →