正则表达式测试器

//
My phone number is 123-456-7890 and zip code is 10001.
匹配结果: 0

什么是正则表达式测试器?

正则表达式(Regex/RegExp)测试器,实时显示匹配结果并高亮捕获组。支持 JavaScript 正则语法,包括分组捕获 `()`、非捕获组 `(?:)`、前瞻 `(?=)`、后顾 `(?<=)`、量词 `*+?{}`、字符类 `[]` 等。内置常用模板:邮箱验证、手机号、URL、IP 地址、日期格式等。适合前端开发、数据清洗、日志分析等场景。所有匹配在浏览器本地完成。

使用场景

  • 表单输入验证(邮箱、手机号、身份证号)
  • 日志文件模式匹配和提取
  • 文本批量替换(如清理 HTML 标签)
  • 数据清洗(提取结构化信息)
  • 学习正则表达式语法

如何使用?

  1. 1在"正则表达式"框输入模式(如 `\d+`)
  2. 2在"测试文本"框粘贴待匹配内容
  3. 3实时查看匹配结果和高亮
  4. 4选择预设模板快速开始

功能特点

  • 实时匹配
  • 高亮显示
  • 常用模板
  • 捕获组展示
  • 标志位支持(g/i/m/s)

常见问题

什么是正则表达式?

正则表达式(Regex)是用特殊字符描述文本模式的语法。例如 `\d+` 匹配一个或多个数字,`[a-z]+` 匹配小写字母序列。广泛用于搜索、验证、替换。

支持哪些正则语法?

支持 JavaScript 正则语法(ECMAScript),包括:字符类 `[]`、量词 `*+?{n,m}`、分组 `()`、断言 `^$\b`、前瞻/后顾 `(?=)(?<=)`。不支持 PCRE 特有语法如递归匹配。

g、i、m、s 标志分别是什么?

g=全局匹配(找所有匹配);i=忽略大小写;m=多行模式(^$ 匹配每行);s=单行模式(. 匹配换行符)。

\d 和 [0-9] 有什么区别?

在 JavaScript 中,`\d` 等价于 `[0-9]`,只匹配 ASCII 数字。某些正则引擎(如 Python/Java)的 `\d` 还匹配 Unicode 数字(如阿拉伯数字),但 JS 不会。

我的文本会被上传吗?

不会。所有正则匹配都在浏览器本地完成,文本不会发送到服务器。

为什么我的正则匹配不到预期结果?

常见原因:(1) 忘记加 g 标志导致只匹配第一个;(2) 特殊字符未转义(如 `.` 应写为 `\.`);(3) 贪婪/非贪婪模式选择错误(`.*` vs `.*?`)。