跳到内容
分享网

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

在线工具 Web 15 天前更新 浏览 1 ↓ 直达下载
正则写不对别硬猜:regex101 逐组解释匹配过程,还能生成代码

正则表达式是「写完看着对,跑起来不对」的典型。出问题的时候,逐字符看匹配过程比反复瞎改快得多。

它解决什么问题

正则的语法很紧凑,一个字符的含义会随上下文变化(. 在字符类里就是字面点号);靠记忆排查几乎不可能。

而且不同语言的引擎行为有差异:贪婪与非贪婪、回溯限制、是否支持后顾断言,都会让同一个表达式在不同环境表现不同。

核心能力

能力 具体能做到什么
匹配高亮 右侧实时高亮命中的部分,改一个字符就能看到变化
逐组解释 右下角把表达式拆成每一段并解释含义,学习正则的利器
捕获组说明 列出每个捕获组匹配到的内容,包括命名分组
替换预览 可试替换字符串,看 $1、$2 引用是否按预期展开
多引擎选择 可切换 PCRE2、JavaScript、Python、Go、Java 等引擎,避免「本地能跑线上不行」
代码生成 生成对应语言的调用代码,省去手写转义
调试模式 展示匹配步骤数,能看出是否有灾难性回溯的风险

灾难性回溯是怎么把服务搞挂的

当表达式里出现嵌套的量词(比如 (a+)+b)而输入又是一长串不匹配的 a 时,引擎会尝试指数级数量的组合,CPU 瞬间打满。这在服务端接受用户输入做校验的场景里,会变成可利用的拒绝服务漏洞。

规避方法有三条:一是别写嵌套量词,把 (a+)+ 改成 a+;二是尽量用更具体的字符类替代 .*;三是给匹配加超时或长度上限。用这类工具的调试面板看「步骤数」是个很实用的习惯 —— 正常匹配通常几十到几百步,上万步就说明写法有问题。

谁适合用

  • 要写校验规则、批量替换的开发者
  • 做日志分析、需要从文本里提取字段的运维
  • 处理数据清洗、要按模式提取内容的分析人员
  • 学正则的学生与转行者

怎么开始

  1. 打开 regex101.com,在上方输入框写表达式,下方粘贴测试文本。
  2. 左侧选择引擎(JavaScript / Python / Go 等),要与实际运行环境一致。
  3. 右侧看匹配高亮与「Explanation」逐段解释。
  4. 要试替换就切到「Substitution」区,写替换串并预览结果。
  5. 确认无误后点「Code Generator」生成对应语言的调用代码。

常见问题

不同语言结果不一样怎么办?
先确认引擎选择正确。常见差异在贪婪模式、Unicode 属性支持与后顾断言上。

能保存表达式吗?
注册账号后可以保存常用正则,免费使用。

有隐私风险吗?
输入的文本会发送到它的服务器用于计算。涉及真实数据建议脱敏,或改用本地工具。

学习正则看哪里?
它的解释面板就是最好的教材,配合「Quiz」栏目练习很快能上手。

授权与合规

regex101 免费开放使用,无需注册;其解释与调试功能面向开发者教学与验证用途。 官网:regex101.com

资源信息
界面语言 多语言
授权方式 免费闭源
适用平台 Web
获取方式 直链下载
资源更新 2026-09-19
页面更新 2026-09-03

获取资源

点击下方按钮直接开始下载。

立即下载
直链 https://regex101.com/