正则表达式教程
本教程是正则表达式(Regular Expression,简称 regex 或 regexp)的完整 11 篇入门系列,从基础元字符一路讲到分组捕获、零宽断言、标志位与实战模式,每一篇都配有可在浏览器控制台或 Node 里直接运行的代码示例。
正则表达式是一种描述"字符串模式"的微型语言,1956 年由数学家 Stephen Kleene 在论文里首次提出,1968 年由 Unix 之父之一 Ken Thompson 实现到 qed 编辑器。今天几乎每门语言都内置:JavaScript、Python、Java、Go、PHP、Rust、Perl。它是表单校验、日志清洗、爬虫提取、文本搜索的核心工具——看上去像乱码,实则逻辑严谨,学会一套走遍天下。
先看一个正则
下面是三个最简单的正则示例,先感受一下它的样子:
// JavaScript 里最简单的正则
const re = /hello/;
re.test("hello world"); // true
"hello world".match(re); // ["hello"]
// 加几个元字符就能匹配一"类"字符串
/\d+/.test("订单号 12345"); // true (\d+ 表示一串数字)
/[a-z]+/i.test("Hello"); // true (不分大小写)
/^https?:\/\//.test("https://a.com"); // true (http 或 https 开头)全部 11 篇子教程
建议按顺序学习,每天 1~2 篇,一周即可入门并独立写常用模式。
- 正则表达式简介 — 历史、原理与应用场景
- 基础语法与元字符 — 14 个特殊字符、转义规则
- 字符类 — 自定义集合、范围、预定义类
- 量词 — 星号 加号 问号 大括号
- 锚点与单词边界 — 开头 结尾 位置匹配
- 分组与捕获 — 圆括号、命名组、反向引用
- 选择分支 — 竖线或运算与优先级
- 零宽断言(环视) — 先行、后行、正负断言
- 标志位 — 全局、忽略大小写、多行、Unicode
- 常用正则模式 — 邮箱、手机号、URL、身份证
- 工具与学习资源 — regex101、regexr、推荐书
推荐学习路径
如果你完全零基础,建议按下面 4 个阶段推进:
- 阶段 1 入门:简介 → 基础语法 → 字符类 → 量词。先能看懂简单模式,会描述"一串数字"、"三到五个字母"。
- 阶段 2 位置:锚点 → 分组 → 选择。学会"在哪儿匹配"、"把什么当一个整体"、"或几种情况"。
- 阶段 3 高级:零宽断言 → 标志位。掌握"看一下但不消费"的进阶技巧,理解标志位如何改变行为。
- 阶段 4 实战:常用模式 → 工具。积累邮箱、手机号等常用模板,熟练使用 regex101 调试。
每篇都建议边读边敲:把示例代码复制到浏览器控制台或 Node REPL,改一改、跑一跑。正则是"两周不用就忘"的技能,但熟练后能省下大量字符串处理代码。
开始学习
准备好了吗?从第一篇开始 → 正则表达式简介