У меня есть регулярное выражение для проверки электронной почты с использованием plsql, которое доставляет мне некоторые головные боли ... :) Это условие, которое я использую для проверки электронной почты ([email protected]):
IF NOT REGEXP_LIKE (user_email, '^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$') THEN
control := FALSE;
dbms_output.put_line('EMAIL '||C.user_email||' not according to regex');
END IF;
Если я сделаю выбор на основе выражения, я тоже не получу никаких значений:
Select * from TABLE_X where REGEXP_LIKE (user_email, '^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$');
Используя regex101.com, я получаю полное совпадение с этим электронным письмом: [email protected]
Любая идея?