Cheatsheet for regex expression

2026-06-01

📑 正则表达式终极速查表 (The Ultimate Regex Cheatsheet)

1. 基础元字符 (The Basics)

字符 含义 举例 匹配结果
. 任意字符(除了换行符) a.c abc, a!c, a 1c
\d 任意数字 (Digit) \d{3} 123, 904
\D 非数字 \D A, !, 空格
\w 单词字符 (字母/数字/下划线) \w+ hello, code_123
\W 非单词字符 \W !, @, , \n
\s 空白字符 (空格/Tab/换行) \s , \t, \n
\S 非空白字符 \S A, 9, *

2. 集合与区间 (Character Classes)

字符 含义 举例 匹配结果
[abc] 字符集,匹配其中任意一个 [b-d]at bat, cat, dat
[^abc] 取反集,匹配除了它们以外的 [^0-9] 任何非数字字符
\| 逻辑“或者” (OR) cat\|dog cat 或者 dog

3. 量词与匹配性格 (Quantifiers & Personality)

量词 贪婪模式 (Greedy) 懒惰模式 (Lazy / ?) 含义
* * *? 重复 0 次或多次
+ + +? 重复 1 次或多次
? ? ?? 重复 0 次或 1 次 (可选)
{n} {n} - 必须精准重复 $n$ 次
{n,} {n,} {n,}? 至少重复 $n$ 次
{n,m} {n,m} {n,m}? 重复 $n$ 到 $m$ 次

4. 边界锚点 (Anchors - 零宽断言)

字符 含义 举例 匹配结果
^ 字符串的绝对开头 (M模式下为行首) ^Apple 必须以 Apple 开头的文本
$ 字符串的绝对结尾 (M模式下为行尾) End$ 必须以 End 结尾的文本
\b 单词边界 (Word Boundary) \bcat\b 只能是独立的单词 cat (不匹配 cattle)

5. 分组与预查高级特性 (Groups & Lookarounds)

语法 类型 底层大白话含义 经典应用场景
(...) 捕获组 打包成整体,并存入内存口袋 日期格式化重排,重复单词检测
\1, \2 反向引用 后面那个位置,必须和前面口袋里装的一模一样 匹配 <h1></h1> 或叠字 AA
(?:...) 非捕获组 仅仅为了打包或限定 \| 的范围,不存入内存 (?:http\|https):// 纯逻辑分流
(?=...) 正向肯定预查 往右看,后面必须是……(不吃掉字符) 密码强度检查,不含单位的纯数字提取
(?!...) 正向否定预查 往右看,后面绝对不能是……(不吃掉字符) 限制某些敏感词不能出现在特定位置

6. 全局标志 (Flags)

在正则外部使用(如 /pattern/flags): * g (Global): 全局搜索,捞出所有匹配项,而不是找到第一个就躺平。 * i (Ignore Case): 忽略大小写。 * m (Multiline): 多行模式,让 ^$ 作用于每一行的开头和结尾。 * s (DotAll): 让点号 . 突破封印,可以匹配换行符 \n


🚀 推荐学习资源

1. 殿堂级可视化调试工具:Regex101

  • 功能:包含实时拆解(Explanation)与状态机匹配步骤(Regex Debugger),可一步步看正则引擎的指针如何移动与回溯。
  • 推荐引擎:支持 Python, JavaScript, PCRE, Golang 等。

2. 闯关式保姆级教程:RegexOne

  • 功能:互动式学习,左边为文字解释,右边提供实际练习题(如提取电话、清洗日志),适合巩固基础。

3. 游戏化进阶:Regex Golf

  • 功能:提供两组单词,通过编写最短、最优雅的正则对两组单词进行完美分流,适合进阶挑战。

4. 推荐书籍

  • 《正则表达式必知必会》(Regular Expressions Cookbook):作者 Ben Forta。结构清晰,由“问题-解决方案-底层原理”的实际案例组成,适合作为工具书查阅。