🔤

正则表达式工作台

边输入边看匹配结果,高亮显示每一处命中与分组捕获内容。附常用正则速查表,写正则不再靠试。浏览器本地运行。

正则表达式

使用 JavaScript(ES2020)语法,兼容绝大多数场景。

测试文本

黄色为整个匹配,蓝色/绿色/紫色/红色依次为第 1–4 组捕获。

匹配结果高亮

—

分组捕获

每组显示第几处匹配捕获到的内容。

常用正则速查

点一下就能填进上方输入框试。
这个工具怎么用?常见问题

怎么用?上面填正则,下面填要测试的文本,匹配结果会实时高亮。左侧的 g i m s u y 是修饰符开关,点一下切换效果。

g 和 i 分别是什么?g(global)全局匹配,找到所有处而不只第一处;i(ignoreCase)忽略大小写。写「提取所有邮箱」必须加 g。

为什么我加了 g 却拿不到分组?这是最常见的坑。JS 里 g 修饰符会让正则对象记住 lastIndex,exec() 第二次调用会从上次结束位置继续。解决办法是每次匹配前把 re.lastIndex = 0 重置,或干脆不写 g 改用 matchAll()。

贪婪匹配和非贪婪匹配的区别?* 和 + 默认贪婪,会尽可能多匹配;后面加 ? 变成非贪婪,匹配到满足条件就停。比如 <.+> 匹配整行,<.+?> 只匹配最短的标签。

零宽断言是做什么的?「零宽」意思是它不消耗字符,只判断位置。(?=...) 正向预查、(?!...) 负向预查、(?<=...) 后向预查。常用来做「不含某字符的匹配」或提取固定位置的字段。

相关工具

配合文本处理一起用效率更高。