2016-12-28 1 views
-2

몇 가지 토론을 통해 살펴본 결과 도움이되는 답변이 표시되지 않습니다. 내 정규 표현식이 작동해야한다고 생각합니다. 나는 그것을 시험했다 http://regexr.com/http://www.regexplanet.com/advanced/java/index.html자바 - 일치하지 않는 패턴 정규 표현식

그것은 작동해야한다. 나는 멤버 변수를 설정하기 전에 문자열의 유효성을 검사하는 간단한 유효성 검사기 POJO로 작업 중이다. 호출되는

private static final String emailReg = "(.+(@).\\w+\\..\\w+)"; 
private final Pattern emailPattern = Pattern.compile(emailReg); 

및 방법 :

public boolean validateEmail(String Email){ 

     Matcher m = emailPattern.matcher(Email); 
     return m.matches();   
} 

이 항상 false를 반환합니다. 전달 된 값은 [email protected]가 될 수 있지만 항상 false를 반환합니다. 나는이 시점에서 '유효한'이메일에 대해 걱정하지 않고 있으며, 정규 표현식 문자열이 제대로 조합되었는지 알 필요가있다. regex'es 구축을위한 튜토리얼 페이지에서 볼 수 있듯이, 내 프로그램은 그렇지 않다고 생각합니다.

+6

[Java 정규식 전자 메일] (http://stackoverflow.com/questions/8204680/java-regex-email)의 가능한 복제 – ItamarG3

+0

정규식을 '. + (@). \ w + \ .. + w + ' – Sumit

+1

@Sumit는 Java 문자열 리터럴에서'\\'가 이스케이프되어야 함을 유의하십시오. – Henry

답변

0

나는 추천 할 것이다 : \\[email protected]\\w+\\.\\w+.

이것은 다음과 같은 단어로 나뉩니다. "@"모든 단어 문자 "." 임의의 단어 문자.

시도해 볼 수 있습니다. "[email protected]"은 일치하고 "[email protected]%*.com"은 그렇지 않습니다.

정규식이 모든 것을 거부하는 이유는 코드에 여분의 .이있는 것으로 생각됩니다. [email protected]를 원한다면, "[email protected]+\\..+"은 그 경우 적절한 정규 표현식이됩니다. 자바 패턴에 대한 자세한 내용은

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

+0

왜 첫 번째'. +'를'\\ w +'로 변경 했습니까? 또한, 그가 'matches'를 사용하기 때문에, 당신의 패턴에서'^'와'$'가 중복된다는 것에주의하십시오. 또한'@'를 이스케이프 할 필요가 없습니다.두 예제는 OP의 정규식에서도 똑같이 동작합니다. 정규 표현식은 OP가 받아 들일 수있는 몇 가지 사항을 거부 할 것이지만 모든 것을 거부한다는 이유로 그의 질문에 답하지 않습니다. – ajb

-1

나는 정규 표현식에 약간의 문제가 있다고 생각을 참조하십시오. 이것을 시험해보십시오.

package com.java.demo; 

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class EmailValidator { 

    public static void main(String[] args) { 
     Pattern emailValidatorPattern = Pattern.compile("^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\\.[A-Z]{2,6}$", 
       Pattern.CASE_INSENSITIVE); 
     Matcher matcher = emailValidatorPattern.matcher("[email protected]"); 
     System.out.println(matcher.find()); 
    } 

} 

희망이 있습니다. 해피 코딩!