我有以下情况:我有一个电子邮件数据库,希望收到关于公司的促销电子邮件,闪存销售,新产品广告等等。但一段时间以来,人们一直在注册虚假的电子邮件地址比如aaa@aaa.aa
。我目前正在研究清理这个表的方法,到目前为止我的主要问题是找到了正确的REGEXP_LIKE
模式来帮助我。
我试过这个WHERE REGEXP_LIKE (email_address, '(\w){3,}')
,但这并不好。它找到了john@doe.com
等电子邮件。我试图在oracle中寻找一种方法,但到目前为止还不好。
任何人都可以帮助我吗?
答案 0 :(得分:0)
您可以尝试以下模式之一:
'(\w)\1{2,}'
'((\w)+)\1+'
第一个Pattern将检测3个或更多相同字符的序列。例如aaa或bbb。第二种模式将检测2个或更多重复字符模式的序列,如aa,bbb,abab或123123等。
这是通过使用\ 1来实现的,\ 1是对括号括起的第一个模式的反向引用。在第一种模式中,后向引用指的是恰好一个字符的模式。在第二种模式中,后引用是指一个或多个字符的击球手。