>Java >java지도 시간 >Java Regex는 어떻게 이메일 주소를 효과적으로 검증할 수 있습니까?

Java Regex는 어떻게 이메일 주소를 효과적으로 검증할 수 있습니까?

DDD
DDD원래의
2024-12-02 16:01:16151검색

How Can Java Regex Effectively Validate Email Addresses?

Java Regex를 사용한 이메일 검증

정규 표현식을 사용하여 이메일 주소를 검증하는 것은 덜 권장되는 접근 방식이지만 이 방법을 계속 진행하려면 중요합니다. 나타날 수 있는 잠재적인 문제를 이해합니다.

먼저 제공된 정규식:

b[A-Z0-9._%-] @[A-Z0-9.-] .[A-Z]{2,4}b

Java에서는 다음 코드가 사용되었습니다.

Pattern p = Pattern.compile("\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b");
Matcher m = p.matcher("[email protected]");

그러나 정규 표현식이 유효한 이메일 주소와 일치하지 못했습니다. 실패의 잠재적 원인을 식별하기 위해 코드와 정규식을 고려해 보겠습니다.

동일한 정규식을 사용하는 Eclipse 내 "찾기 및 바꾸기" 기능은 동일한 패턴 일치 알고리즘을 사용하지 않거나 처리했을 수 있기 때문에 다르게 동작했습니다. 입력 문자열이 다르게 표시됩니다.

이 문제를 해결하려면 보다 정교한 이메일 검증 사용을 고려할 수 있습니다. 정규식:

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는 어떻게 이메일 주소를 효과적으로 검증할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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