You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中匹配@与.间恰好5个纯字母的SQL条件实现

PostgreSQL: 筛选@与.之间恰好为5个纯字母的邮箱记录

嘿,这问题我熟!要搞定这个需求,咱们直接用PostgreSQL的正则表达式匹配功能就行,结合不区分大小写的匹配操作符,精准命中符合规则的邮箱。

假设你的表名叫users,存储邮箱的字段是email,可以用下面的SQL语句:

SELECT *
FROM users
WHERE email ~* '^[^@]+@[a-z]{5}\.[^.]+$';

正则规则拆解

我给你拆解下这个正则的每个部分,方便你理解和调整:

  • ^[^@]+:匹配邮箱开头到@之前的所有内容,确保@前面不是空的,而且不含@符号
  • @:精准匹配邮箱里的@分隔符
  • [a-z]{5}:匹配恰好5个字母,因为用了~*操作符(不区分大小写匹配),所以不管是大写还是小写字母都会被匹配到
  • \.:匹配邮箱里的点号.,因为在正则里.是通配符,必须加反斜杠转义才能匹配真实的点号
  • [^.]+$:匹配点号之后的后缀部分,确保后缀不是空的,而且不含其他点号(适合.com、.org这类简单后缀)

如果需要支持多后缀的邮箱(比如.co.uk)

要是你的邮箱可能有多层后缀,比如user@domain.co.uk,可以把正则的最后部分调整下,允许点号后面有任意内容:

SELECT *
FROM users
WHERE email ~* '^[^@]+@[a-z]{5}\..+$';

这样调整后,只要@和第一个.之间是5个纯字母,不管后面有多少层后缀都会被匹配到。

验证示例

  • 符合条件的邮箱:user@domain.com、USER@DOMAIN.org、test@AbCDe.net
  • 不符合的邮箱:user@dom12n.com(含数字)、user@dom-ain.com(含连字符)、user@domai.com(只有4个字母)、user@domainn.com(6个字母)

内容的提问来源于stack exchange,提问作者afropunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:47:14