Rumah >Java >javaTutorial >Mengapa Pengesahan E-mel Java Regex Saya Gagal, Walaupun Ia Berfungsi dalam Eclipse?

Mengapa Pengesahan E-mel Java Regex Saya Gagal, Walaupun Ia Berfungsi dalam Eclipse?

DDD
DDDasal
2024-12-03 04:55:13165semak imbas

Why Is My Java Regex Email Validation Failing, Even Though It Works in Eclipse?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn