写正则最怕「脑子想的是对的,跑起来却不对」:标志位漏了、分组编号搞错、替换串写错。与其在代码里反复试,不如先丢进一个正则测试器里看清楚。这篇用 NBTools 的正则表达式测试工具讲清楚怎么用。
工具在浏览器本地运行,实时显示每一处匹配的位置和分组,支持替换模式与常用正则库,内容不上传。
第一步:粘贴文本、写正则
在「原始文本」粘贴待匹配内容,在「正则表达式」框写模式(如 (\d+))。下面实时显示匹配数、每处位置和捕获到的分组。
第二步:勾选标志
按需勾选标志:g 全局、i 忽略大小写、m 多行、s 点匹配换行、u Unicode、y 粘连。当前生效的标志会显示在正则框右侧。
第三步(可选):替换模式
勾「替换模式」后填替换串,可用 $1 $2 引用分组、$& 引用整段匹配、$<name> 引用命名组。结果实时生成,可一键复制。
标志位速查
| 标志 | 含义 | 典型用途 |
|---|---|---|
| g | 全局搜索 | 找出所有匹配,而非第一个 |
| i | 忽略大小写 | 匹配 Email、英文词时不区分大小写 |
| m | 多行 | ^ $ 匹配每行首尾 |
| s | 点匹配换行 | 跨行内容也要算进去时 |
| u | Unicode | 正确处理表情符号等码点 |
| y | 粘连 | 从上次结束位置严格续匹配 |
内置常用正则与多语言参考
不想从零写,点「常用正则」里的手机号、身份证、邮箱、URL、IP、日期、中文字符、整数/小数、HTML 标签、命名组,一键填入示例;展开「各语言代码参考」还能拿到 JS / Python / PHP / Go / Java / C# / Ruby 的写法,直接粘进项目。
会卡死吗?有防护
某些「灾难性回溯」正则(如 (a+)+$ 配长文本)会让浏览器卡死。工具内置两层防护:文本上限 200000 字符,单次匹配超过 1 秒就主动终止并提示,避免页面假死。
常见问题
支持哪些标志位
支持 g / i / m / s / u / y 六个标准标志,可组合勾选,右侧实时预览当前生效标志。
分组(括号)怎么看
每处匹配下方列出编号分组($1、$2…)和命名分组($<name>),方便确认捕获内容。
替换模式怎么写
勾选替换模式后,用 $1 $2 引用分组、$& 引用整段、$<name> 引用命名组;结果实时生成可复制。
有现成正则可用吗
有。内置手机号、身份证、邮箱、URL、IP、日期、中文、数字、HTML 标签、命名组等常用模式,点击即填入示例。
文本太长或卡住了怎么办
文本超过 20 万字符会提示减少输入;单次匹配超 1 秒(疑似灾难性回溯)会被终止并提示简化正则或缩短文本。
内容会上传吗
不会。所有匹配、替换都在浏览器本地完成,文本与正则不上传。
相关工具
- NBTools 正则表达式测试:https://nbtools.cn/tools/regex
- JSON 格式化:格式化与校验 JSON
- 代码格式化压缩:HTML/CSS/JS 格式化