>Java >java지도 시간 >Java Regex 이메일 검증이 Eclipse에서 작동하는데 실패하는 이유는 무엇입니까?

Java Regex 이메일 검증이 Eclipse에서 작동하는데 실패하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-03 04:55:13166검색

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

Java Regex 이메일 검증: 내 정규 표현식이 실패하는 이유는 무엇입니까?

이메일 검증을 위한 Java 정규 표현식이 지속적으로 실패하는 특이한 문제가 발생했습니다. , Eclipse에서 올바르게 작동함에도 불구하고. 이 동작은 혼란스러울 수 있으므로 해결책을 자세히 살펴보겠습니다.

제공된 정규식은 일반적으로 사용되는 이메일 확인 패턴과 유사하며, 여기서는 대문자 영숫자 문자, 밑줄, 마침표 또는 문자 구조를 일치시키는 것을 목표로 합니다. 하이픈 뒤에 "@" 기호가 오고 그 뒤에 추가 영숫자 문자, 마침표 또는 하이픈이 오고 2~4개의 대문자로 구성된 도메인 구성 요소로 끝납니다. letter.

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!");

그러나 이 정규 표현식은 실패한 것 같습니다. 이메일 문자열 내의 특수 문자가 위장되거나 이스케이프되었기 때문일 수 있습니다.

더 포괄적인 정규 표현식을 사용하는 솔루션

이 문제를 해결하기 위해 이메일에 더욱 강력한 정규식을 활용할 수 있습니다. 유효성 검사:

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();
}

이 업데이트된 정규식은 지정된 이메일 구조를 준수하지만 추가로 특수 문자를 더 효과적으로 처리합니다.

위 내용은 Java Regex 이메일 검증이 Eclipse에서 작동하는데 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.