Regex101
正则表达式在线调试。
Regex101 是正则表达式的在线调试器。它解决的不只是「写不出来」,更是「看不懂」——右侧会把你的正则逐段解释成人类语言,这是它区别于其它正则工具的核心价值。
适合谁
- 写正则总是不匹配,需要看看到底匹配了什么
- 拿到别人写的正则,想搞清楚它是什么意思
- 需要在多种语言(JS / Python / Go / PCRE)之间确认行为差异
- 学习正则:边写边看解释,比读教程快
核心能力
- 实时匹配高亮:输入测试文本,立刻看到命中位置
- 逐段解释面板:把每个符号翻成中文说明
- 捕获组列表:显示每个组抓到了什么
- 替换预览:测试替换结果
- 多语言引擎切换:PCRE、JavaScript、Python、Go、Java、.NET 等
- 代码生成:直接生成对应语言的调用片段
- 快速参考:内置语法速查表
- 保存与分享:生成链接,方便团队协作排查
上手要点
- 先选对语言。同一个正则在 PCRE 和 JavaScript 下行为可能不同(如反向引用、Unicode 属性、行锚点)。选错了会得出错误结论。
- 右侧解释面板是宝藏。看不懂的正则直接粘进去,逐段读解释,比自己猜快得多。
- 注意贪婪与懒惰。默认贪婪匹配,量词后加问号变懒惰——大部分「匹配多了」的问题都是这个原因。
- 灾难性回溯要警惕。嵌套量词(如连续两个星号包裹的模式)在长文本上可能卡死,用它跑一遍长输入能提前发现。
- 中文匹配用 Unicode 属性或范围。只写汉字范围会漏掉全角标点,需要时明确加上。
定价与限制
完全免费,无需注册即可使用全部核心功能。
同类怎么选
| 场景 | 更合适 | |---|---| | 调试 + 理解正则 | Regex101(解释面板最强) | | 快速试、界面漂亮 | RegExr | | 可视化流程图 | Debuggex | | 日常在编辑器里写 | VS Code 正则预览 |
常见问题
为什么线上能匹配,代码里不行?
最常见的原因是引擎不同。Regex101 默认 PCRE,而你的代码可能是 JavaScript 或 Go,两者对某些语法的支持不一样。第一步永远是切换到你实际用的语言再测。 其次是转义问题:字符串里的反斜杠在代码里要再转义一次。
怎么匹配中文?
用 Unicode 属性(如匹配字母/数字/汉字的类别)或显式字符范围。注意如果文本里有全角标点,纯汉字范围会漏掉它们,需要把标点也纳入范围。
正则很慢甚至卡死是怎么回事?
多半是灾难性回溯——嵌套量词导致指数级的匹配尝试。表现是短文本正常、长文本卡死。解决办法是改写模式(减少嵌套量词、用更精确的字符类、加锚点),或改用逐字符解析。