ORACLE中使用SQL的正则表达式判断邮箱格式

在数据库中,有时需要判断字符串是否是一个或者多个邮箱格式,可以使用如下语句判断:

SELECT COUNT(1)  
  FROM dual 
 WHERE regexp_like(v_mail,'^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+(;{1,1}\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)*$')

代码中v_mail即为邮箱字符串,如果多个邮箱,以分号隔开。语句返回1则表示字符串符合邮箱格式,返回0则表示字符串不符合邮箱格式。