如何将电子邮件地址与正则表达式匹配?

How match email address with regex expression?

查找电子邮件的匹配包含错误的正则表达式,导致丢失本应在输出中填充的电子邮件。

下面是查询

case when regexp_like(email,'^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$')

上面的正则表达式不匹配像这样的电子邮件 比尔@AMERITRUST-MORTGAGE.COM 相反,当遇到此类电子邮件时,它 returns null。

我使用了这个语句并且有效:

select 1
  from dual
 where regexp_like('BILL@AMERITRUST-MORTGAGE.COM', '^([a-zA-Z0-9_\.-]+)@([a-zA-Z0-9_\.-]+)\.([a-zA-Z]{2,5})$');

减号必须是 [...] 中的最后一个。