Przede wszystkim wiem, że używanie wyrażenia regularnego do e-maili nie jest zalecane, ale muszę to przetestować.
Mam to wyrażenie regularne:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
W Javie zrobiłem to:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b");
Matcher m = p.matcher("[email protected]");
if (m.find())
System.out.println("Correct!");
Jednak wyrażenie regularne kończy się niepowodzeniem, niezależnie od tego, czy wiadomość e-mail jest prawidłowo utworzona, czy nie. „Znajdź i zamień” wewnątrz Eclipse działa dobrze z tym samym wyrażeniem regularnym.
Dowolny pomysł?
Dzięki,
Odpowiedzi:
FWIW, oto kod Java, którego używamy do weryfikacji adresów e-mail. Regexp są bardzo podobne:
Działa dość niezawodnie.
źródło
Oto wyrażenie regularne zgodne z RFC822 przystosowane do języka Java:
Wynik:
Wyrażenie regularne pochodzi z tego wpisu: Mail :: RFC822 :: Adres: sprawdzanie poprawności adresu oparte na wyrażeniach regularnych . Wyniki powinny pokrywać się z wersją online .
źródło
email@email
jako prawidłowy adres eNie. Nigdy nie otrzymasz prawidłowego wyrażenia.
Na przykład są to wszystkie prawidłowe adresy e-mail:
Wystarczy wspomnieć o kilku problemach:
Jeszcze przed rozpoczęciem sprawdź odpowiednie specyfikacje RFC
źródło
Dzieje się tak, ponieważ zapominasz o niewrażliwości na wielkość liter:
To pasuje do twojego przykładu, chociaż ignoruje wiele ważnych wiadomości e-mail.
źródło
Kolejna prosta alternatywa do weryfikacji 99% e-maili
źródło
To jest prawidłowe wyrażenie regularne do sprawdzania poprawności wiadomości e-mail. Jest całkowicie zgodny z RFC822 i akceptuje adresy IP i nazwy serwerów (do celów intranetowych).
Oto kilka przykładów wyjściowych podczas wywoływania
isEmailValid(emailVariable)
:źródło
Czy obróbka jest ustawiona na CASE_INSENSITIVE ?
źródło
Możesz użyć tej metody do weryfikacji adresu e-mail w java.
źródło
Ogólny format wiadomości e-mail (RE), który obejmuje również domeny, takie jak co.in, co.uk, com, outlook.com itp.
A reguła mówi, że:
(kropka, kropka, kropka) pod warunkiem, że nie jest to pierwszy ani ostatni znak, a także pod warunkiem, że nie występuje dwa lub więcej razy pod rząd.
źródło
Modyfikacja odpowiedzi Armera B., która nie weryfikowała wiadomości e-mail kończących się na „.co.uk”
źródło
Wyrażenie regularne:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
źródło
Jeśli chcesz zezwolić na znaki spoza alfabetu łacińskiego, ten działa dla mnie całkiem dobrze.
Nie zezwala na adresy IP po @, ale większość ważnych wiadomości e-mail w adresie z
[email protected]
może zostać zweryfikowana za jego pomocą.\p{L}
sprawdza poprawność liter UTF i\p{N}
sprawdza poprawność numerów UTF. Można sprawdzić ten dokument , aby uzyskać więcej informacji.źródło
Wypróbuj poniższy kod dla wiadomości e-mail w formacie
1 część
-jsmith
2 część[email protected]
źródło
Przetestowałem to poniżej
regular expression
dla pojedynczych i wielu kolejnych kropek wdomain
nazwie -a oto przykłady, które zostały całkowicie spełnione przez powyższe
regex
.Próbowałem objąć maksymalne powszechnie używane
email id's validation
przez to powyżej zilustrowane,regex
a jednak działające ...Jeśli nadal wiesz, że niektóre konsekwentnie używane
email id's
zostały tutaj, daj mi znać w sekcji komentarzy!źródło
To jest wyrażenie regularne odpowiadające prawidłowym adresom e-mail.
źródło
możesz użyć prostego wyrażenia regularnego do weryfikacji identyfikatora e-mail,
Opis:
źródło
Możesz sprawdzić, czy e-maile są poprawne, czy nie, używając tych bibliotek, i oczywiście możesz dodać tablicę do tego następującego projektu.
wynik :
Poczta jest: prawda
Mail to: false
źródło
źródło
Dzięki odpowiedzi @Jason Buberel myślę, że małe litery muszą zostać zatwierdzone przez RegEX. Więc poniższe jest poprawne:
Teraz zarówno [email protected] , jak i [email protected] są ważne!
Zauważ, że \. powinno być \\. uciec . i mają \. samo. Ponieważ . to znaczący znak w java RegEX oznacza wszystkie znaki.
źródło
Pattern.CASE_INSENSITIVE
, więc nie ma potrzebya-z
Regex do walidacji podobnej do Facebooka:
Dto do testów jednostkowych (z Lombok):
Prawidłowe / nieprawidłowe wiadomości e-mail poniżej z testami jednostkowymi:
}
źródło