正则表达式
使用 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()。
贪婪匹配和非贪婪匹配的区别?* 和 + 默认贪婪,会尽可能多匹配;后面加 ? 变成非贪婪,匹配到满足条件就停。比如 <.+> 匹配整行,<.+?> 只匹配最短的标签。
零宽断言是做什么的?「零宽」意思是它不消耗字符,只判断位置。(?=...) 正向预查、(?!...) 负向预查、(?<=...) 后向预查。常用来做「不含某字符的匹配」或提取固定位置的字段。
相关工具
配合文本处理一起用效率更高。