正则表达式
/
/
测试字符串
匹配详情
悬停或点击条目可在上方文本中定位该匹配
文本替换
在替换内容里可用 $1、$2 引用捕获分组,$& 引用整段匹配,$<name> 引用命名分组。
表达式解释
按语法片段逐段解释当前表达式
正则语法速查
点击条目插入到表达式光标处
常用正则示例
点一下即可载入表达式、标志与配套测试文本。
功能特性
- 边输入边匹配:测试文本里所有命中位置实时高亮,多段匹配交替配色,一眼看清覆盖范围。
- 支持 g / i / m / s / u / y 六个标志,点一下即切换,非法表达式给出原生引擎的错误原因。
- 匹配详情逐条列出:整体命中的内容与位置、长度,以及每个编号分组和命名分组的取值与区间。
- 替换视图支持 $1、$&、$<name> 等引用,实时预览替换结果,可一键复制。
- 表达式逐段解释与语法速查表:把正则拆开讲清每一片段的作用,常用写法随点随插。
- 纯前端计算:文本只在你的浏览器里被 JavaScript 引擎匹配,不上传服务器,界面支持中/繁/英。
使用方法
- 在顶部输入框写正则(不用带斜杠),点 g/i/m/s/u/y 按钮切换标志。
- 在「测试字符串」里粘贴文本,命中处立即高亮;表达式写错时输入框下方会给出原因。
- 「匹配详情」列出每处匹配与分组,悬停条目可在文本中定位对应高亮;「文本替换」填替换内容即可实时预览。
- 不熟悉的语法可在「语法速查」点击查看说明并插入,或用「常用正则示例」一键载入 email、URL、IPv4 等现成写法。
常见问题
- 这里的正则引擎和别的网站一样吗?
- 本页直接用你当前浏览器内置的 JavaScript 正则引擎(ECMAScript 规范)执行匹配,没有经过服务端。同一份表达式在 Chrome / Firefox / Safari 之间偶尔会有行为差异(尤其新语法支持进度不同),跨浏览器使用时以目标浏览器为准;服务器端语言(Python / Java / PCRE)语法相近但不完全相同。
- 为什么我的表达式一直「无匹配」?
- 常见原因:忘了开 g 标志导致只匹配第一处(本页高亮按标志实时计算);^ 和 $ 在多行文本里需要开 m 标志才按行生效;点号 . 默认不匹配换行,需要 s 标志;还有反斜杠在部分输入场景被吞掉,可对照「表达式解释」检查逐段拆解的结果。
- 替换里的 $1、$<name> 是怎么工作的?
- 替换串遵循 JavaScript String.replace 的规则:$& 代表整段匹配,$1、$2 代表第 1、2 个捕获分组,$<name> 代表名为 name 的捕获分组,$$ 代表字面 $。要插入字面的 $ 符号后面不接引用时,写成 $$。
- 贪婪与非贪婪匹配有什么区别?
- 默认量词是贪婪的:.* 会尽可能多地吃掉字符再找后续内容;在量词后加 ? 变成惰性(.*?),会尽可能少地匹配。例如从 "<a> <b>" 中取标签内容,<.*> 匹配整串,<.*?> 只匹配 <a>。用本页分别试一次,高亮范围一目了然。
- 我粘贴的敏感文本会被上传吗?
- 不会。匹配、高亮、替换全部在你的浏览器内存里由本地 JavaScript 完成,本页是纯静态页面,没有后端接口,文本与表达式只会保存在你自己设备的 localStorage 里以便下次打开恢复,除非你主动复制,本站服务器上看不到任何内容。
关于本工具
正则实验室是一个在线正则表达式测试器:表达式 + 测试文本 + 实时高亮 + 分组详情 + 替换预览 + 语法速查放在同一页,功能对标 RegExr / regex101 的核心用法。
匹配由浏览器原生 RegExp 引擎执行,解释器与速查表是页面内置的静态数据;没有任何后端或第三方 API,输入内容不出浏览器,界面支持简体 / 繁體 / English。
站内其他工具
纯前端计算 · 浏览器原生 RegExp 引擎 · 免费 · 支持中/繁/英