跳转到内容

正则表达式测试器

实时测试、调试和验证 JavaScript 正则表达式,适合检查邮箱校验、URL 解析和密码强度规则。

/

/g

标志

匹配结果

6 处匹配

Hello World from Gemini CLI. This is a Test string.
#匹配位置分组
1Hello0$1: H
2World6$1: W
3Gemini17$1: G
4CLI24$1: C
5This29$1: T
6Test39$1: T
历史记录

保存的正则会显示在这里。

速查表

.除换行外的任意字符
\w单词字符(字母、数字、_)
\d数字(0-9)
\s空白字符
[abc]a、b 或 c 中的任意一个
[^abc]不是 a、b 或 c

^字符串/行的开头
$字符串/行的结尾
\b单词边界

*0 次或多次
+1 次或多次
?0 次或 1 次
{3}恰好 3 次
{3,}3 次或更多

(...)捕获分组
(?:...)非捕获分组
(?<name>...)命名捕获分组
(?=...)正向先行断言
(?!...)负向先行断言
(?<=...)正向后行断言

常见正则问题

如何用正则校验邮箱地址?

一个简单的模式是 ^[\w.-]+@([\w-]+\.)+[\w-]{2,4}$。把它粘贴到上方,即可用你的邮箱列表测试。

只匹配文件扩展名?

使用 \.[0-9a-z]+$ 匹配字符串末尾的扩展名,适合按文件类型过滤。

如何检查至少 8 个字符,且至少包含一个字母和一个数字?

使用先行断言:^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$。这是常见的密码强度检查。

为什么我的正则匹配得太多?

你可能用了贪婪量词,例如 .*。试着加一个问号变成惰性匹配:.*?。

如何匹配 IPv4 地址?

使用 ^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$ 校验标准 IP 地址。

如何匹配 YYYY-MM-DD 日期?

使用 ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ 检查合法的 ISO 日期。

如何匹配十六进制颜色代码?

使用 ^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$ 匹配标准十六进制颜色(例如 #fff 或 #000000)。

如何校验用户名(字母数字,3-16 个字符)?

若只允许小写字母、数字、下划线和连字符,可使用 ^[a-z0-9_-]{3,16}$。

如何匹配 URL(http/https)?

使用 https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*) 匹配常见网址。

如何匹配 HTML 标签?

使用 <\/?([a-z][a-z0-9]*)\b[^>]*> 查找开始和结束标签(注意:用正则解析 HTML 通常很脆弱)。

如何匹配 URL slug?

使用 ^[a-z0-9]+(?:-[a-z0-9]+)*$ 校验适合 URL 的 slug(例如 this-is-a-slug)。

如何匹配 24 小时制时间?

使用 ^([01]\d|2[0-3]):?([0-5]\d)$ 校验 HH:MM 时间字符串。