在线工具集

正则表达式速学:从零到正确写出邮箱验证

正则不只是程序员的活——批量处理 Excel、查找替换日志、表单验证都要用。本指南从最基础语法到常见模式,1 小时上手。

📅 更新于 2026-04-28 · ⏱ 约 3 分钟阅读 · → 立即使用 正则表达式测试

正则表达式(Regular Expression,简称 regex)是描述字符串模式的迷你编程语言。学会它的基础后,你能在几秒内完成原本需要写循环和判断才能做的事。本指南配合本站正则测试器,从最基础的语法讲到常用实战模式。

5 个核心元字符

  • . 匹配任意单字符(除换行)
  • * 前一个字符 0 次或多次
  • + 前一个字符 1 次或多次
  • ? 前一个字符 0 次或 1 次
  • \ 转义后面的字符

例:a.b 匹配 a1bacba b,但不匹配 ab(中间必须有字符)。

字符类速查

  • \d 数字 [0-9] / \D 非数字
  • \w 字母数字下划线 [a-zA-Z0-9_] / \W 反向
  • \s 空白(空格、Tab、换行) / \S 反向
  • [abc] 只能是 a 或 b 或 c
  • [^abc] 不能是 a/b/c
  • [a-z] 范围 a 到 z

锚点与边界

  • ^ 行首(多行模式下每行开头)
  • $ 行尾
  • \b 单词边界(介于 \w\W 之间)
  • \B 反向

例:\bcat\b 匹配独立的 cat 单词,不匹配 caterpillar 中的 cat。

量词进阶

  • {n} 恰好 n 次
  • {n,} 至少 n 次
  • {n,m} n 到 m 次
  • ? 变贪婪 → 懒惰:.*? 尽量少匹配

例:手机号 1[3-9]\d{9}(1 + 3-9 任一数字 + 9 个数字)。

分组与捕获

  • (...) 捕获组(可在结果中按 $1 引用)
  • (?:...) 非捕获组(性能更好,不返回结果)
  • (?=...) 正向先行断言(要满足但不消耗)
  • (?!...) 反向先行断言

常用模式(直接抄)

  • 邮箱:[\w.+-]+@[\w-]+\.[\w.-]+
  • 中国手机号:1[3-9]\d{9}
  • URL:https?://[\w-./?#@!$&'()*+,;=%]+
  • 中文字符:[\u4e00-\u9fa5]
  • IPv4:(\d{1,3}\.){3}\d{1,3}
  • 日期 YYYY-MM-DD:\d{4}-\d{2}-\d{2}

本工具的「常用模式」按钮可一键加载这些,直接测试。

常见问题

正则在不同语言有差异吗?

有。本工具用 JavaScript 引擎,与 Python `re`、PHP PCRE 大致相同但细节有差。复杂正则建议先在目标语言测试。

为什么我的正则匹配太多?

可能默认贪婪了。`.*` 会尽量多吃,加 `?` 变懒惰:`.*?` 尽量少吃。

能用正则解析 HTML 吗?

简单提取可以,复杂场景请用 DOM 解析器(如 cheerio、BeautifulSoup)。HTML 嵌套结构正则很难表达。