mysql - 如何使用 REGEXP MySQL 函数查找超过 2 个点的电子邮件?

标签 mysql regex email

我有一个很大的用户数据库,里面有很多垃圾邮件帐户,比如 j.o.hnha.r.rold.t.ho.mp.so.n.j.u.n.io.r@gmail.como.f.vst.p.rqlsy.j@gmail.com 我想通过一个查询删除它们(而不是执行解析所有数据库的 php 脚本)。

我看到 MySQL 有一个 REGEXP 函数,但是很难用“点”来使用它。我尝试了很多事情,例如:

  • SELECT * FROM users WHERE email REGEXP '([[...]]){2,}'
  • SELECT * FROM users WHERE email REGEXP '(\\.){2,}'
  • SELECT * FROM users WHERE email REGEXP '(.*)[[...]]{2}(.*)'

每一个都失败了。

有什么想法吗?

最佳答案

这个怎么样?

SELECT * FROM users WHERE email REGEXP '[.].*[.].*@';

这会在 @ 之前搜索两个(或更多)点(这仍然允许多点域名,如 .co.uk 等)。

但是,您应该考虑到某些用户的用户名中可能确实也有多个点的可能性,这仍然是合法的。

关于mysql - 如何使用 REGEXP MySQL 函数查找超过 2 个点的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762928/

相关文章:

MySQL单引号/双引号语法问题

mysql - Rails 3 : has_and_belongs_to_many relationship being created, 但无法检索

python - 如何编写正则表达式以从 CSS 文件中提取特定的键格式和值?

regex - 简单的正则表达式问题

javascript - NodeJS nodemailer - IIS SMTP 虚拟服务器

mysql - 简单的 cakephp 搜索表单无法正常工作

php - Excel 到 PHP - MYSQL

正则表达式匹配大写

java - 通过 GMail 从 Glassfish 发送邮件会抛出 java.net.UnknownHostException

php - 在产品 View 页面中向 friend 发送电子邮件不起作用