使用oracle中的REGEXP_LIKE查找同一字符的多个事件

时间:2016-06-06 19:14:28

标签: regex oracle10g

我有以下情况:我有一个电子邮件数据库,希望收到关于公司的促销电子邮件,闪存销售,新产品广告等等。但一段时间以来,人们一直在注册虚假的电子邮件地址比如aaa@aaa.aa。我目前正在研究清理这个表的方法,到目前为止我的主要问题是找到了正确的REGEXP_LIKE模式来帮助我。

我试过这个WHERE REGEXP_LIKE (email_address, '(\w){3,}'),但这并不好。它找到了john@doe.com等电子邮件。我试图在oracle中寻找一种方法,但到目前为止还不好。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下模式之一:

'(\w)\1{2,}'
'((\w)+)\1+'

第一个Pattern将检测3个或更多相同字符的序列。例如aaa或bbb。第二种模式将检测2个或更多重复字符模式的序列,如aa,bbb,abab或123123等。

这是通过使用\ 1来实现的,\ 1是对括号括起的第一个模式的反向引用。在第一种模式中,后向引用指的是恰好一个字符的模式。在第二种模式中,后引用是指一个或多个字符的击球手。