【发布时间】:2017-12-15 05:31:02
【问题描述】:
下面的正则表达式验证几乎所有有效和无效的电子邮件地址:https://blogs.msdn.microsoft.com/testing123/2009/02/06/email-address-test-cases/
代码:
DECLARE
v_email webowner.person.email%TYPE;
v_constant CONSTANT VARCHAR2(300) := '^(([a-zA-Z0-9"_\-])((\.?[a-zA-Z0-9_\/%+="''\-]+)\.?[a-zA-Z0-9+-]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([a-zA-Z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\]))$';
BEGIN
v_email := 'email@domain.com';
if regexp_like(v_email, v_constant) then
pl('YES: ' || v_email);
else
pl('NO: ' || v_email);
end if;
END;
但是现在出现了这种情况,它需要最少 2 个字符(在“@”之前的用户名部分),而我只需要一个强制性字符。
例如
p@domain.com
【问题讨论】: