regex101 是一个跑在浏览器里的正则表达式工作台:写模式、贴样例、看实时匹配与逐段解释,再把调好的规则生成目标语言代码。它解决的并不只是“能不能匹配”,而是让你在改业务代码之前看清某个引擎到底把你的写法理解成了什么。
regex101 是什么:浏览器里的正则工作台
页面把三件事并到一屏:左边写模式与测试文本,右边给匹配高亮、捕获组明细,以及一段把模式拆成 token 的解释。改一个字符就立刻重算,不用保存,也不用刷新。
编辑器按任务分成四个页签:Match 看匹配,Substitution 看替换结果,Extraction 抽取字段,Unit Tests 把正例与反例固定成回归基线。工具栏另有 Code Generator、Regex Debugger、Regex Converter 与 Export Matches。
匹配明细可以导出成 JSON、JSON Lines、CSV 或纯文本,方便贴进工单或转给同事复核。站点由 regex101 ApS 运营,界面与文档以英文为主,解释面板的措辞比较固定,读几遍就能把语法术语对上。
对写后端和数据管道的人来说,这类工具的直接收益是缩短“猜”的时间:一条看起来对的规则,在解释面板里往往能看出某处量词写宽了,或者某个分组其实只捕获了一半内容。
十种 flavor:先对齐运行时再改表达式
首页的 flavor 下拉里列了 10 种:PCRE2(PHP)、JavaScript、Python、Golang、Java、.NET 10.0(C#)、Rust、POSIX ERE、POSIX BRE(grep/sed)与旧版 PCRE。官方的引擎选择文档把顺序写得很明确:先选定与生产环境一致的引擎,再打磨表达式。

差异不是纸面上的。同一条命名分组,JavaScript 要写成 (?<id>[0-9]{4}),Python 要写成 (?P<id>[0-9]{4}),两边都不接受对方的写法。后行断言、Unicode 字符类、反向引用与替换语法,同样是常见的分歧点。
| 目标运行时 | 起步 flavor |
|---|---|
| 新版 PHP(PCRE2) | PCRE2 (PHP) |
| 浏览器 JavaScript 或 Node.js | JavaScript |
| Python 的 re 模块 | Python |
| Go 的 regexp 包 | Golang |
| Java 的 java.util.regex | Java |
| .NET 正则 | .NET 10.0 (C#) |
| Rust 的 regex crate | Rust |
| grep 与 sed 的 POSIX 基本表达式 | POSIX BRE |
还要记住同名不等于同实现。JavaScript flavor 借的是浏览器自带引擎,某个 Node.js 版本支持的特性集可能与浏览器不同;其余 flavor 由 regex101 提供本地运行时构建,因此别把编辑器里的字符位置直接当成别的宿主里的字节偏移。
免费版与 Pro 的边界
免费层覆盖了写模式、看捕获组、跑单元测试这条主线,打开即用,不需要注册。Pro 主要放宽上限,并补上几类偏重的活,官方对比表列得很细:
| 能力 | 免费 | Pro |
|---|---|---|
| 正则调试器 | PCRE2 下 50 个事件的预览 | 更长的轨迹、捕获与操作细节 |
| 可编辑测试串 | 2 条 | 不限条数 |
| flavor 转换 | 只能转成 JavaScript | 全部目标 flavor 与引擎对比 |
| 基准测试与格式化 | 不提供 | 包含 |
| 文本管道 | 2 层变换 | 不限层数 |
| 文件读取 | 单个文本或二进制文件 | 另含 PDF、DOCX、ODT、gzip 与多文件 |
| 解释 API 与工作区工具 | 基础 MCP 工具需账号 | 解释 API 需账号 |
文档没有写死价格:登录后在 Upgrade to Pro 页面才看得到当前币种与计费周期,付款完成后应用会轮询大约五分钟并提示生效。企业自托管与解析器授权是另外两条产品线,走 Enterprise 许可单独报价。
本地处理与数据边界
官方隐私说明把边界写得很直白:匹配、替换、单元测试、调试、基准测试与文件抽取都在浏览器内完成,测试文本和文件不会因为这些操作被上传。
真正会离开浏览器的只有两类动作:保存或发布工作区时提交的字段(模式、测试串、单元测试等),以及调用 API 或 MCP 时请求里带的字段。工作区的可见性设置单独控制谁能读、谁能改。
分享链接要当心。Copy draft link 会把编辑器内容编码进 URL,拿到链接的人就能读到这些字段;要发公开示例,请用合成数据,或者把内容存成私有工作区。CyberChef 那类纯前端工具是同一个思路:能力留在本地,风险落在分享环节。
不能把测试串放出去的团队,可以看自托管 Enterprise,把保存的工作区留在自己的部署里。第三方测评页也记录了同一条边界:正则运算在本地内存完成,但免费层侧栏有赞助商展示位。
适用场景与上手五步
第一次用,按下面的顺序走一遍就够:
- 先选 flavor,让引擎与生产环境保持一致。
- 贴一段真实但已脱敏的样例文本,别用占位符凑数。
- 写模式,借解释面板逐段核对每个 token 的含义。
- 在 Unit Tests 里固定两条正例与两条反例,作为回归基线。
- 用 Code Generator 生成目标语言代码,粘到本地跑通再合并。
三类场景用得比较多:
- 表单校验:先在这里把规则对齐,再落到 HTML 的 pattern 属性。官方排障文档提醒 pattern 用的是 JavaScript 加 v 标志,并且要求整个值匹配,所以不要把首尾斜杠和全局标志一起抄进去。
- 日志抽取:贴一行日志,用命名分组取出订单号与时间戳,再把明细导出成 CSV 交给下游分析。
- 替换脚本:先在 Substitution 页确认替换串与反向引用,再写进 sed 或业务代码,避免拿生产环境试错。
它不适合承担两件事:在真实生产数据上评估性能与灾难性回溯,以及充当团队的模式仓库。前一类需求应该在受控环境里压测,后一类要看自托管或工作区接口。想把调好的规则接进编辑器或智能体流程,可以顺着 MCP 协议 的思路读工作区文档,但要记得这类请求会把字段发给服务端。
常见问题
本机能匹配,写进代码却报错,先查什么?
按引擎、操作、标志、字符四层往下查:先确认 flavor 对应的是哪个库,再确认你比的是匹配还是替换,然后看 g、m、s 这类标志,最后核对看不见的字符,比如不换行空格、LF 与 CRLF,以及 JSON、shell 或 SQL 里多出来的一层转义。排障文档还给了 HTML 表单校验的例子,说明为什么同一个模式在页面上行为不同。
免费版够用吗?
只写模式、看捕获组、跑几条单元测试的话够用。需要更长的调试轨迹、跨 flavor 转换、基准测试,或者要读 PDF 与 Office 文件时,再考虑 Pro。
保存下来的表达式会公开吗?
取决于工作区的可见性设置。未登录时用 Copy draft link 分享的链接,等于把内容放进了 URL 本身,谁拿到谁就能读,因此公开分享前请先替换成合成样例。
需要装客户端吗?
不需要,浏览器打开就能用;离线使用的前提是应用与引擎资源已经在缓存里,首次建议先联网加载一遍。
适合谁:需要跨语言写正则的后端与数据工程、要给同事或学生演示引擎差异的人、以及被一段遗留正则卡住又不方便在生产上试的运维。建议先在免费层把一条真实规则从“能匹配”推到“有单元测试、有生成代码”,再决定要不要为调试轨迹和文件抽取付费。想看另一种“把中间结果摊开”的在线工具,可以对照 Compiler Explorer 一起用:一个看正则,一个看汇编。
© 版权声明
文章版权归作者所有,转载需注明出处。未声明原创的皆为网络收集,如有侵权请邮箱lishiwenhuagx@sina.com联系下架处理。




