Regelmäßiges Ausdrucksproblem
-
16-10-2019 - |
Frage
SELECT FIRSTNAME,LASTNAME, EMAIL
FROM CUSTOMERS
WHERE REGEXP_LIKE(EMAIL,'[A-Z0-9._%-]{1,10}@[a-z0-9._%-]{1,5}\.[net|com]','i');
Ich weiß, dass dies nicht praktisch ist oder eine Menge Sinn macht, aber es ist eine Einschränkung, mit der ich arbeite: E -Mail -Adresse mit bis zu 10 Zeichen vor @ gefolgt von bis zu 5 Zeichen und dann '.' und schließlich die .NET- oder .com -Erweiterung. Dies funktioniert größtenteils, außer dass die 1-10-Einschränkung in der ersten Hälfte nicht das tut, was ich möchte. Es zieht so ziemlich beliebige Zahlenzeichen vor dem '@'. Zum Beispiel sollte es akzeptieren jreed aber nicht Jodywilliamreed Wie der spätere sind mehr als 10 Zeichen. Sehen jemand, was ich hier getan habe, das dieses Problem verursachen würde? Bearbeiten: Ich verwende SQL Developer mit Oracle
Lösung
Versuchen Sie das Hinzufügen der ^
Charakter für Ihren Regex, was bedeutet, die Position am Anfang der Zeichenfolge wie diese zu entsprechen
^[A-Z0-9._%-]{1,10}@[a-z0-9._%-]{1,5}\.[net|com]