Pengesahan E-mel Java Regex: Mengapa Regex Saya Gagal?
Anda menghadapi isu pelik di mana regex Java anda untuk pengesahan e-mel gagal secara konsisten , walaupun berfungsi dengan betul dalam Eclipse. Tingkah laku ini boleh membingungkan dan kami akan menyelidiki penyelesaiannya.
Rex yang disediakan adalah serupa dengan corak pengesahan e-mel yang biasa digunakan, di mana anda menyasarkan untuk memadankan struktur berikut: aksara alfanumerik huruf besar, garis bawah, noktah atau sempang diikuti dengan simbol "@", diikuti dengan lebih banyak aksara abjad angka, noktah atau sempang dan berakhir dengan komponen domain yang terdiri daripada 2 hingga 4 huruf besar huruf.
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!");
Walau bagaimanapun, regex ini nampaknya gagal, mungkin disebabkan oleh aksara khas dalam rentetan e-mel yang disamarkan atau dilupuskan.
Penyelesaian Menggunakan Regexp yang Lebih Komprehensif
Untuk menangani perkara ini, kami boleh menggunakan regex yang lebih mantap untuk e-mel pengesahan:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
regex dikemas kini ini mematuhi struktur e-mel yang ditentukan, tetapi selain itu mengendalikan aksara khas dengan lebih berkesan.
Atas ialah kandungan terperinci Mengapa Pengesahan E-mel Java Regex Saya Gagal, Walaupun Ia Berfungsi dalam Eclipse?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!