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

War es hilfreich?

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]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top