nicetool.dev logo

正则表达式测试

使用浏览器的 JavaScript RegExp 引擎,不会向服务器发送任何数据。

//gi
示例
测试文本
匹配高亮2 个匹配
Contact: [email protected], [email protected]
Visit https://nicetool.dev on 2026-09-24 from 192.168.1.10
Colors: #3b82f6 #fff #10b981
匹配详情
匹配 1 · 位置 9
[email protected]
匹配 2 · 位置 29
[email protected]

速查表

.
除换行外的任意字符
\d
数字 (0-9)
\w
单词字符 (a-z, A-Z, 0-9, _)
\s
空白字符
\b
单词边界
^
字符串/行的开头
$
字符串/行的结尾
*
0 次或多次
+
1 次或多次
?
0 次或 1 次(可选)
{n,m}
n 到 m 次
[abc]
a、b 或 c 之一
[^abc]
不是 a、b 或 c
(...)
捕获分组
(?<name>...)
命名捕获分组
a|b
a 或 b

什么是正则表达式?

正则表达式(regex)是描述一组字符串的模式。开发者用它来校验邮箱等输入、搜索替换文本以及从日志中提取数据。本工具使用与您的 JavaScript 代码相同的引擎,结果完全一致。

功能

  • • 输入时实时高亮所有匹配
  • • 显示每个匹配的捕获分组和命名分组
  • • 支持编号和命名分组引用的替换预览
  • • 常用模式与简洁速查表

注重隐私

您的模式和测试数据完全在浏览器中处理,仅保存在本设备的本地存储中。

数据不会离开浏览器。

正则表达式测试使用方法

  1. 1

    在正则表达式输入框中输入模式(不需要两边的斜杠),或从 Email、URL、IPv4 等示例开始。

  2. 2

    选择需要的标志:g 查找所有匹配,i 忽略大小写,m 让 ^ 和 $ 按行匹配,s 让 . 匹配换行,u 用于 Unicode。

  3. 3

    粘贴测试文本。匹配结果随输入实时高亮,并在下方列出位置和每个捕获组。

  4. 4

    开启 Replace 可预览使用 $1、$2 或命名分组的替换结果,然后把模式复制到代码中。

实际应用示例

验证表单输入

在放入表单校验之前,用有效和无效的样例测试邮编、电话号码或用户名的模式。

从日志中提取数据

在访问日志上使用 (\d{3}) 这样的模式可以捕获每个 HTTP 状态码,匹配列表准确显示脚本将提取的内容。

在代码中查找替换

用 (\d{4})-(\d{2})-(\d{2}) 和替换串 $3/$2/$1 把 2026-10-03 改为 03/10/2026,在整个项目中执行前先检查结果。

学习正则表达式

参照速查表,每次只改动一处,观察量词、分组和锚点如何改变匹配结果。

常见问题

这个测试器使用哪种正则引擎?+

使用浏览器的 JavaScript RegExp 引擎,与 Node.js 和 TypeScript 相同。大多数语法在 Python、Java、PHP 和 Go 中也能用,但后行断言、命名分组和部分标志可能有差异。

为什么只找到第一个匹配?+

没有 g(global)标志时,JavaScript 正则在第一个匹配后就会停止。开启 g 即可找到全部。

贪婪和非贪婪量词有什么区别?+

.* 是贪婪的,会尽可能多地匹配字符,所以 <.*> 会从第一个 < 匹配到最后一个 >。加上 ? 变成非贪婪:<.*?> 在第一个 > 处停止。

正则会让页面卡死吗?+

会。(a+)+ 这类嵌套量词在长文本上可能引发灾难性回溯。如果测试器变慢,请简化模式或让重复部分更具体。