正则表达式速查手册

文本处理 完全免费 🔍 关键词搜索 📖 6 大类语法 📥 离线可用 🌙 支持黑夜模式

写正则总记不住语法?元字符、字符类、量词、分组断言、锚点、修饰符 6 大类全收录,还附邮箱、手机号、IPv4、强密码等高频实例,支持关键词搜索,边查边写。

类别程序员 · 文档速查
运行方式纯前端 · 离线运行
语法分类元字符 / 字符类 / 量词 / 分组断言 / 锚点 / 修饰符
数据存储无存储

📖 语法速查

输入关键词实时过滤,如「断言」「量词」

✨ 元字符

. 匹配除换行外的任意字符
\d 匹配数字 [0-9]
\D 匹配非数字
\w 匹配字母数字下划线 [a-zA-Z0-9_]
\W 匹配非单词字符
\s 匹配空白符(空格 / 制表 / 换行)
\S 匹配非空白符
\b 匹配单词边界
\B 匹配非单词边界
\n 换行符
\t 制表符
\0 空字符
\x41 十六进制字符(A)
\u4e00 Unicode 中文字符(\u4e00-\u9fa5)

🎯 字符类

[abc] 匹配 a b c 中的任意一个
[^abc] 匹配除 a b c 外的任意字符
[a-z] 匹配 a 到 z 之间的任意小写字母
[0-9] 匹配任意数字
[a-zA-Z0-9_] 匹配单词字符

🔢 量词

* 匹配前一个字符 0 次或多次(等价 {0,})
+ 匹配前一个字符 1 次或多次(等价 {1,})
? 匹配前一个字符 0 次或 1 次(等价 {0,1})
{n} 匹配恰好 n 次
{n,} 匹配至少 n 次
{n,m} 匹配 n 到 m 次
*? / +? / ?? 懒惰匹配:尽可能少地匹配

📦 分组与引用

(abc) 捕获分组,将 abc 作为一个整体
(?:abc) 非捕获分组,只分组不捕获
(?<name>abc) 命名分组(JS 中为 (?&lt;name&gt;abc))
\1 反向引用第 1 个分组
(?=abc) 正向先行断言:后面必须是 abc
(?!abc) 负向先行断言:后面不能是 abc
(?<=abc) 正向后行断言:前面必须是 abc
(?<!abc) 负向后行断言:前面不能是 abc
a|b 或运算,匹配 a 或 b

📍 锚点

^ 匹配字符串开头(多行模式匹配行首)
$ 匹配字符串结尾(多行模式匹配行尾)
\b 单词边界

🚩 修饰符

/pattern/g 全局匹配,找出所有匹配项
/pattern/i 忽略大小写
/pattern/m 多行模式,^ $ 匹配每行首尾
/pattern/s 点号匹配换行符
/pattern/u Unicode 模式,正确处理中文 / Emoji
/pattern/y 粘连模式,从 lastIndex 开始匹配

📝 常用实例

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 邮箱
^1[3-9]\d{9}$ 中国大陆手机号
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ 日期 yyyy-MM-dd
^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$ IPv4 地址
^https?:\/\/[^\s/$.?#].[^\s]*$ URL
^\d{17}[\dXx]$ 18 位身份证
^[\u4e00-\u9fa5]+$ 纯中文
^[a-zA-Z][a-zA-Z0-9_]{4,19}$ 用户名(5-20 位字母开头)
^(?=.*[A-Za-z])(?=.*\d).{8,}$ 强密码(字母+数字,至少 8 位)
^[0-9a-fA-F]{24}$ MongoDB ObjectId

核心特性

元字符与转义字符一览
字符类与范围写法
量词与贪婪 / 懒惰模式
分组、反向引用与零宽断言
锚点与修饰符说明
10+ 高频实战正则
关键词实时搜索
支持黑夜模式与离线使用

正则为什么总是记不住?

正则表达式用极短的符号表达复杂的文本规则,功能强大,但符号密集、语义隐晦,不常写就记不住。(?<=...) 是先行还是后行、*? 到底匹配多还是少、^$ 在多行模式下的差异——这些细节每次都得回头查。

这份手册把常用语法按 6 大类整理成对照表:元字符、字符类、量词、分组与引用(含零宽断言)、锚点、修饰符,每一项都配一句人话解释,需要时直接在搜索框输入关键词(如「断言」「量词」「\d」)即可快速定位。

最后一类收录了 10+ 个高频实战正则——邮箱、手机号、日期、IPv4、URL、身份证、纯中文、用户名、强密码、MongoDB ObjectId。这些都是长期验证过的写法,复制即可用,也建议配合「正则表达式在线测试」实测后再上线。

怎么用

  1. 搜索定位
    在搜索框输入关键词(如「断言」「量词」「\d」「邮箱」),列表会实时过滤到匹配项。
  2. 按类浏览
    不知道关键词时,按 6 大类自上而下浏览,每项都有一句解释。
  3. 复制实测
    找到需要的语法后,粘贴到「正则表达式在线测试」工具里换上自己的测试文本验证效果。
  4. 套用实例
    最下方的「常用实例」是可直接复用的成品正则,按场景挑选即可。

使用技巧

  • 零宽断言((?=)、(?<=))只做条件判断,不消耗字符,不影响匹配位置的推进。
  • 量词默认是贪婪匹配,加 ? 变成懒惰匹配(如 *?)可避免吃过头。
  • JS 中 ^、$ 默认只匹配整串首尾,加 m 修饰符才按行匹配。
  • 含中文或 Emoji 时记得加 u 修饰符,否则可能匹配到半个字符。
  • 字符类内部大多元字符不用转义,但 ]、\、^、- 需要留意位置。
  • 匹配连续字符要用量词,正则本身不会自动「重复」,别把 abc+ 误当成匹配 abcabc。

更新记录

  • v1.0 2026-08-31 首次上线:元字符 / 字符类 / 量词 / 分组断言 / 锚点 / 修饰符 6 大类语法对照,附 10+ 高频实例与关键词搜索。

常见问题

先行断言和后行断言有什么区别?
(?=abc) 是正向先行:要求右边紧接着 abc;(?<=abc) 是正向后行:要求左边紧挨着 abc。加感叹号 (?!...)、(?<!...) 表示否定。它们都只判断条件、不消耗字符。
为什么我的正则匹配结果总比预期多?
多半是贪婪匹配导致的。默认量词(*、+、{n,m})会尽可能多地匹配,改写成懒惰形式(*?、+?)即可让它在满足条件时尽早结束。
多行文本里 ^ 和 $ 为什么不起作用?
需要加上 m 修饰符。默认情况下 ^、$ 匹配整个字符串的开头与结尾,开启多行模式后才会匹配每一行的行首行尾。
中文字符或 Emoji 匹配异常怎么办?
加上 u 修饰符启用 Unicode 模式,让引擎按码点而不是按字节处理,可避免匹配到半个字符。纯中文可用 ^[\u4e00-\u9fa5]+$。
手册里的实例能直接用在生产环境吗?
可以,但建议先用「正则表达式在线测试」工具配自己的真实数据验证。不同语言(JS / PHP / Python)在转义与修饰符上略有差异,跨语言使用时请核对。
这份手册能离线使用吗?
可以。点顶部「📥 下载离线版」会导出包含全部语法内容的自包含 HTML 文件,不联网也能打开查阅。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码