正则写不对别硬猜:regex101 逐组解释匹配过程,还能生成代码

正则表达式是「写完看着对,跑起来不对」的典型。出问题的时候,逐字符看匹配过程比反复瞎改快得多。
它解决什么问题
正则的语法很紧凑,一个字符的含义会随上下文变化(. 在字符类里就是字面点号);靠记忆排查几乎不可能。
而且不同语言的引擎行为有差异:贪婪与非贪婪、回溯限制、是否支持后顾断言,都会让同一个表达式在不同环境表现不同。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| 匹配高亮 | 右侧实时高亮命中的部分,改一个字符就能看到变化 |
| 逐组解释 | 右下角把表达式拆成每一段并解释含义,学习正则的利器 |
| 捕获组说明 | 列出每个捕获组匹配到的内容,包括命名分组 |
| 替换预览 | 可试替换字符串,看 $1、$2 引用是否按预期展开 |
| 多引擎选择 | 可切换 PCRE2、JavaScript、Python、Go、Java 等引擎,避免「本地能跑线上不行」 |
| 代码生成 | 生成对应语言的调用代码,省去手写转义 |
| 调试模式 | 展示匹配步骤数,能看出是否有灾难性回溯的风险 |
灾难性回溯是怎么把服务搞挂的
当表达式里出现嵌套的量词(比如 (a+)+b)而输入又是一长串不匹配的 a 时,引擎会尝试指数级数量的组合,CPU 瞬间打满。这在服务端接受用户输入做校验的场景里,会变成可利用的拒绝服务漏洞。
规避方法有三条:一是别写嵌套量词,把 (a+)+ 改成 a+;二是尽量用更具体的字符类替代 .*;三是给匹配加超时或长度上限。用这类工具的调试面板看「步骤数」是个很实用的习惯 —— 正常匹配通常几十到几百步,上万步就说明写法有问题。
谁适合用
- 要写校验规则、批量替换的开发者
- 做日志分析、需要从文本里提取字段的运维
- 处理数据清洗、要按模式提取内容的分析人员
- 学正则的学生与转行者
怎么开始
- 打开 regex101.com,在上方输入框写表达式,下方粘贴测试文本。
- 左侧选择引擎(JavaScript / Python / Go 等),要与实际运行环境一致。
- 右侧看匹配高亮与「Explanation」逐段解释。
- 要试替换就切到「Substitution」区,写替换串并预览结果。
- 确认无误后点「Code Generator」生成对应语言的调用代码。
常见问题
不同语言结果不一样怎么办?
先确认引擎选择正确。常见差异在贪婪模式、Unicode 属性支持与后顾断言上。
能保存表达式吗?
注册账号后可以保存常用正则,免费使用。
有隐私风险吗?
输入的文本会发送到它的服务器用于计算。涉及真实数据建议脱敏,或改用本地工具。
学习正则看哪里?
它的解释面板就是最好的教材,配合「Quiz」栏目练习很快能上手。
授权与合规
regex101 免费开放使用,无需注册;其解释与调试功能面向开发者教学与验证用途。 官网:regex101.com。
资源信息
界面语言
多语言
授权方式
免费闭源
适用平台
Web
获取方式
直链下载
资源更新
2026-09-19
页面更新
2026-09-03
↓ 获取资源
点击下方按钮直接开始下载。
立即下载
直链
https://regex101.com/