← 返回科研导航

正则实验室

实时高亮 · 分组详情 · 替换预览 · 语法速查

English 简体 繁體

正则表达式

/ /

测试字符串

匹配详情

悬停或点击条目可在上方文本中定位该匹配

文本替换

在替换内容里可用 $1、$2 引用捕获分组,$& 引用整段匹配,$<name> 引用命名分组。


  

表达式解释

按语法片段逐段解释当前表达式

正则语法速查

点击条目插入到表达式光标处

常用正则示例

点一下即可载入表达式、标志与配套测试文本。

功能特性

使用方法

常见问题

这里的正则引擎和别的网站一样吗?
本页直接用你当前浏览器内置的 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 引擎 · 免费 · 支持中/繁/英