</>CodeKitHubEnglish

正则表达式在线测试

输入正则表达式,测试文本中的匹配会实时高亮显示。每个匹配的捕获分组单独列出,支持所有 JavaScript 正则标志。写代码前先在这里调试好你的正则。

//

    工具介绍

    正则表达式(regex)是一种查找、校验和提取文本的紧凑模式语言:邮箱模式可以校验表单输入,\d{4}-\d{2}-\d{2} 能找出日期,捕获分组则提取你需要的部分。几乎所有编程语言和编辑器都支持正则。

    本工具使用 JavaScript 正则引擎——与 Node.js 和所有浏览器中运行的完全相同——所以在这里调试好的模式,放进你的 JavaScript/TypeScript 代码中行为完全一致。大多数模式在 Python、Java、Go 中也无需修改。

    为什么使用它?

    • 实时反馈:边输入模式,匹配结果边用黄色高亮。
    • 逐个显示捕获分组——清楚看到 $1、$2 会是什么内容。
    • 完整标志支持:g(全部匹配)、i(忽略大小写)、m(多行)、s(点号匹配换行)、u(Unicode)。
    • 模式有语法错误时给出清晰的错误提示。
    • 免费且私密——模式和文本都不离开浏览器。

    使用方法

    1. 在两个 / 之间输入你的正则模式(不需要自己转义斜杠)。
    2. 在第二个 / 后面的小框中调整标志——默认 g 表示找出全部匹配。
    3. 在下方粘贴测试文本。
    4. 匹配即时高亮;捕获分组列在下面。
    5. 模式无效时会显示具体的错误原因。

    示例

    输入

    模式: (\w+)@(\w+)\.com
    测试文本: Contact alice@example.com or bob@test.com

    输出

    ✓ 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 个匹配以保持流畅。

    相关工具