独立编辑指南
← 返回工具地图
用正反例检查规则,而不是只看高亮

regex101 怎么用?边写边测,弄清正则究竟匹配了什么。

regex101 用来编写、测试和解释正则表达式。它适合排查“为什么多匹配了一段”或“为什么分组为空”。从一个产品编号规则开始,选择与项目一致的语言,再用正例和反例验证。

打开 regex101 官网 ↗
放大镜从不同形状中筛选出匹配方块的原创插画
本站使用 AI 生成的原创任务示意图,不是 regex101 产品界面或实际输出截图。
先选语言,再写规则

不同正则引擎的语法与替换规则可能不同。网站里的测试通过后,还要放到项目实际运行环境中验证;不要把一种语言的表达式直接当成所有语言通用。

任务 01

先测一个完整的产品编号

练习规则要求字符串恰好是 ITEM- 加四位数字,例如 ITEM-0042。选择 JavaScript 风格,并先关闭多行 m 标志,单独粘贴每个测试值。

选 JavaScript和目标环境一致
填写规则限定前缀与四位数字
输入正例ITEM-0042
本站自制的操作流程示意,不是产品界面或实际处理结果截图。
^ITEM-([0-9]{4})$
  1. 在正则输入区填写下面的表达式;这里给出的是规则正文,不含 / 分隔符。
  2. 在测试文本区单独输入 ITEM-0042,观察完整匹配与解释。
  3. 查看 ^、[0-9]{4} 与 $ 的作用,确认匹配覆盖整个测试值。
多行模式会改变锚点含义

开启 m 后,^ 与 $ 可以针对每一行,而不只是整个测试文本。本例为了检查单个编号,先逐个测试、不开 m,避免把多行高亮误认为单个输入验证。

任务 02

提取四位数字,而不是整个编号

括号形成捕获组。本例的完整匹配是 ITEM-0042,第一个捕获组是 0042;前导零是编号的一部分,不能为了“方便”随手转成数字 42。

完整匹配ITEM-0042
捕获组 10042
核对替换保留前导零
本站自制的操作流程示意,不是产品界面或实际处理结果截图。
  1. 打开匹配详情,找到完整匹配与第一个捕获组。
  2. 在替换区域尝试 JavaScript 替换文本 SKU-$1,核对结果是否为 SKU-0042。
  3. 将分组用途记清楚:需要完整编号时用完整匹配,只需要尾部四位时才取捕获组。
替换语法也要跟着语言走

本例的 $1 对应 JavaScript 替换语法;切换引擎或复制到其他工具时,先看该工具的替换说明。不要只复制替换文本而忽略环境。

任务 03

把“不该通过”的样例也放进测试

一个正例通过还不够。用长度不足、多余前缀、多余后缀和空字符串测试,确认规则没有意外放宽。

正例通过ITEM-0042
反例不通过ITEM-42 等
运行时复测项目里的语言和标志
本站自制的操作流程示意,不是产品界面或实际处理结果截图。
  1. 逐个测试 ITEM-42、XITEM-0042、ITEM-0042-extra 和空字符串,本规则都不应匹配。
  2. 补充真实业务允许与不允许的格式,例如是否允许小写;先确定需求,再调整规则。
  3. 在项目运行时重复这组样例,检查标志、转义和输入预处理是否一致。
不要拿简单规则承诺复杂校验

邮箱、网址等格式有大量边界,本页不提供“万能校验正则”。处理陌生或复杂表达式时,也要考虑长输入带来的性能问题。

正例证明能匹配,反例帮助发现匹配过多。

本页为 ToolAtlas 独立编辑的入门指南,非 regex101 官方教程。本站与该产品无隶属或赞助关系。