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 중국어 웹사이트의 기타 관련 기사를 참조하세요!