首页 全栈极客与开发辅助内容详情

改一个字符看一次全貌,正则调试不该靠猜 - 命中标黄,匹配摊成卡片

2026-10-29 21
改一个字符看一次全貌,正则调试不该靠猜

站点名称:改一个字符看一次全貌,正则调试不该靠猜

所属分类:全栈极客与开发辅助

相关标签: # 正则表达式 # 正则测试 # 正则匹配 # 正则替换 # 开发工具

官方网址:https://www.9314.cn/tools/regex-tester/

SEO查询: 爱站网 站长工具

进入网站

站点介绍

改一个字符看一次全貌,正则调试不该靠猜

一、看不见引擎在想什么,才是正则难调的根源

写正则的常规姿势:打开控制台,敲一行 console.log,跑一遍,盯着输出猜。改一个字符,整套动作重来一次。

最难受的不是不匹配,是「明明该匹配却什么都没有」。你不知道是转义错了、量词松了,还是标志少勾了一个。

二、把三件事摊在同一个屏幕上

预览区直接把命中段标黄,文本长什么样一眼可见。明细区每一处匹配一张卡:匹配了什么、从第几个字符开始、$1 $2 各抓到了什么。

标志按钮不是摆设。点一下 g,下面那行小字告诉你它管什么——很多「差一口气」的匹配,就是少了个 s 标志,让点号跨不过换行。

替换框也在同一页。填上 $2 $1 这种调序写法,结果立刻刷出来,不用另开一个工具。

三、空匹配会如实告诉你

写 (\d*) 这种正则,它对任何位置都成立,结果是一串空命中。这个工具不把这些藏起来——空匹配照常出卡,位置标得清清楚楚。

我的习惯:先收紧量词看命中数量对不对,再逐个打开标志看范围变化,最后才看捕获组。三步下来,大多数「玄学」正则问题都能落地。

常见疑问

为什么我的正则匹配到了空字符串?多半是量词套在一个可空的东西上,比如 (\d*) 这样的写法,它对任何位置都成立。给量词加个 +(改成 \d+),或者检查是不是把 ? 用在了整个分组上。工具会把空匹配也如实显示出来,方便定位。

g 标志到底影响什么?不带 g,整个文本只报第一处匹配;带上 g,从头扫到尾,每一处命中各占一张卡片。替换预览同理:有 g 替换全部,没 g 只替换第一处。

我写的正则和测试文本会被上传吗?不会。匹配用的是浏览器自己的正则引擎,页面不发任何请求。正则、文本和标志只存在这台设备的 localStorage 里,刷新后还在,点页脚「清空我的数据」可彻底删掉。

支持前后查找(lookaround)吗?支持。(?=…) 和 (?!…) 以及 (?<=…) 和 (?<!…) 都能用,走的是浏览器原生引擎。注意 Safari 在 16.4 之前不支持后行查找,换浏览器打开就好。

替换功能怎么用?在替换框里填内容,下面立刻给出替换后的完整文本,$1、$2 会替换成对应的捕获组。想删掉匹配内容就留空,想调换顺序就写 $2 $1。

工具入口:正则表达式测试器。同类:程序员计算器、Cron 表达式翻译器。

English version: https://www.9314.cn/tools/regex-tester/en/

浏览统计(最近30天)

 暂无评论,快来抢沙发吧~

发布评论