工具介绍
正则表达式(regex)是一种查找、校验和提取文本的紧凑模式语言:邮箱模式可以校验表单输入,\d{4}-\d{2}-\d{2} 能找出日期,捕获分组则提取你需要的部分。几乎所有编程语言和编辑器都支持正则。
本工具使用 JavaScript 正则引擎——与 Node.js 和所有浏览器中运行的完全相同——所以在这里调试好的模式,放进你的 JavaScript/TypeScript 代码中行为完全一致。大多数模式在 Python、Java、Go 中也无需修改。
为什么使用它?
- 实时反馈:边输入模式,匹配结果边用黄色高亮。
- 逐个显示捕获分组——清楚看到 $1、$2 会是什么内容。
- 完整标志支持:g(全部匹配)、i(忽略大小写)、m(多行)、s(点号匹配换行)、u(Unicode)。
- 模式有语法错误时给出清晰的错误提示。
- 免费且私密——模式和文本都不离开浏览器。
使用方法
- 在两个 / 之间输入你的正则模式(不需要自己转义斜杠)。
- 在第二个 / 后面的小框中调整标志——默认 g 表示找出全部匹配。
- 在下方粘贴测试文本。
- 匹配即时高亮;捕获分组列在下面。
- 模式无效时会显示具体的错误原因。
示例
输入
模式: (\w+)@(\w+)\.com
测试文本: Contact [email protected] or [email protected]输出
✓ 2 个匹配
#1 分组: $1=alice $2=example
#2 分组: $1=bob $2=test圆括号创建捕获分组,替换操作中可用 $1、$2 引用。
常见问题
这个工具用的是哪种正则方言?
JavaScript(ECMAScript),即所有浏览器和 Node.js 内置的引擎。核心语法各语言通用,但个别特性有差异——比如 Python 和 Java 的后行断言支持和命名分组语法略有不同。
为什么只匹配到第一个结果?
缺少 g(全局)标志。没有 g 时正则找到第一个匹配就停止。本工具默认带 g——检查是否被删掉了。
为什么 . 匹配不到换行?
默认情况下 . 匹配除换行外的任意字符。加上 s 标志(dotall)让 . 也匹配换行,或者用 [\s\S] 这个通用写法。
捕获分组结果是什么意思?
模式中每对圆括号会捕获它匹配到的文本。$1 是第一组,$2 是第二组,以此类推——替换和提取代码中引用的就是它们。
为什么我的正则很慢甚至卡死?
很可能是灾难性回溯,由 (a+)+ 这类嵌套量词在不匹配的输入上引起。重写模式避免有歧义的重复。本工具最多显示 1000 个匹配以保持流畅。