Pertama-tama, saya tahu bahwa menggunakan regex untuk email tidak disarankan tetapi saya harus mengujinya.
Saya memiliki regex ini:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Di Jawa, saya melakukan ini:
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!");
Namun, regex gagal terlepas dari apakah email tersebut dalam format yang bagus atau tidak. Sebuah "temukan dan ganti" di dalam Eclipse berfungsi dengan baik dengan regex yang sama.
Ada ide?
Terima kasih,
Jawaban:
FWIW, berikut adalah kode Java yang kami gunakan untuk memvalidasi alamat email. Regexp sangat mirip:
Bekerja dengan cukup andal.
sumber
Berikut adalah regex yang sesuai dengan RFC822 yang diadaptasi untuk Java:
Keluaran:
Regex diambil dari posting ini: Mail :: RFC822 :: Alamat: validasi alamat berbasis regexp . Hasilnya harus sesuai dengan versi online .
sumber
email@email
sebagai email yang validJangan. Anda tidak akan pernah mendapatkan ekspresi yang valid.
Misalnya, ini semua adalah alamat email yang valid:
Hanya untuk menyebutkan beberapa masalah:
Bahkan sebelum memulai, periksa RFC yang sesuai
sumber
Itu karena Anda melupakan ketidakpekaan huruf besar / kecil:
Ini cocok dengan contoh Anda, meskipun mengabaikan banyak email yang valid.
sumber
Satu lagi alternatif sederhana untuk memvalidasi 99% email
sumber
Ini adalah regex yang valid untuk memvalidasi email. Ini benar-benar sesuai dengan RFC822 dan menerima alamat IP dan nama server (untuk tujuan intranet).
Berikut beberapa contoh keluaran, saat Anda menelepon
isEmailValid(emailVariable)
:sumber
Apakah pemesinan disetel ke CASE_INSENSITIVE ?
sumber
Anda dapat menggunakan metode ini untuk memvalidasi alamat email di java.
sumber
Format Email Umum (RE) yang termasuk juga domain seperti co.in, co.uk, com, outlook.com dll.
Dan aturan mengatakan bahwa:
(titik, titik, titik, titik) asalkan bukan karakter pertama atau terakhir, dan juga tidak muncul dua kali atau lebih secara berurutan.
sumber
Modifikasi jawaban Armer B. yang tidak memvalidasi email yang diakhiri dengan '.co.uk'
sumber
Ekspresi Reguler:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
sumber
Jika Anda ingin mengizinkan karakter non-latain, yang ini bekerja cukup baik untuk saya.
Itu tidak mengizinkan IP setelah @ tetapi sebagian besar email valid di dari
[email protected]
dapat divalidasi dengannya.\p{L}
memvalidasi UTF-Letters dan\p{N}
memvalidasi UTF-Numbers. Anda dapat memeriksa dokumen ini untuk informasi lebih lanjut.sumber
Coba kode di bawah ini untuk email adalah format
Bagian pertama bagian
-jsmith
kedua[email protected]
sumber
Saya telah menguji ini di bawah
regular expression
untuk satu dan beberapa titik berturut-turut padadomain
nama -dan berikut adalah contoh yang sepenuhnya dipenuhi di atas
regex
.Saya telah mencoba untuk menutupi maksimum yang biasa digunakan
email id's validation
oleh ilustrasi di atas iniregex
namun tetap bekerja ...Jika Anda masih tahu beberapa akibat penggunaan
email id's
telah ditinggalkan di sini, beri tahu saya di bagian komentar!sumber
Ini adalah ekspresi reguler untuk mencocokkan alamat email yang valid.
sumber
Anda dapat menggunakan ekspresi reguler sederhana untuk memvalidasi id email,
Deskripsi:
sumber
Anda dapat memeriksa apakah email valid atau tidak dengan menggunakan perpustakaan ini, dan tentu saja Anda dapat menambahkan array untuk proyek berikut ini.
keluaran:
Surat adalah: benar
Surat adalah: salah
sumber
sumber
Berkat jawaban @Jason Buberel, saya rasa huruf kecil harus divalidasi oleh RegEX. Jadi berikut ini benar:
Sekarang, [email protected] dan [email protected] sudah valid!
Perhatikan bahwa \. harus \\. untuk melarikan diri . dan memiliki \. diri. Sejak ,. adalah karakter yang berarti dalam java RegEX berarti semua karakter.
sumber
Pattern.CASE_INSENSITIVE
, jadi tidak perlua-z
Regex untuk validasi seperti Facebook:
Dto untuk Tes Unit (dengan Lombok):
Email yang valid / tidak valid di bawah ini dengan tes Unit:
}
sumber