2012-10-17 4 views
0

필드가 포함 된 요청에서 내 rest webservice에 대한 요구 사항이 있습니다.이메일 주소를 구문 분석하여 도메인을 가져오고 비교하기

내 웹 서비스에서이 필드를 확인해야하며 이에 대한 유효성 검사가 통과되면 제 3 자 서비스로 요청을 보냅니다.

확인 필수 : ​​

message_from 필드는 email addressstring으로 포함되어 있습니다. [email protected] 패스, [email protected] 패스, [email protected] 실패 ...

내가 패턴 정합 또는 다른 어떤이 유효성 검사를 수행하는 데 사용할 수있는 다음 domain name (@ 후 모든) 예를 들어 roin.com

경우 내가 확인해야?

나는 (@) 후 모든 것을 캡처 구문 분석 문자열을 사용하고 roin.com

작동 방식을 구문 분석이 문자열을 비교하는 equalsIgnoreCase을했지만이 작업을 수행하는 더 좋은 방법이 있나요?

+4

왜 정규식을 사용할 수 있나요? 문자열의 마지막 9 문자를 가져 와서 '@ roin.com'인지 확인하십시오. – SJuan76

답변

6

당신은이 패턴을 (\\[email protected]\\.com) 시도 할 수 있습니다 : -

  • \\S+

    하는 \\S+가 꺼려 매칭을 수행하는 데 사용됩니다
  • ? 후 비 공백 문자를 일치시키는 데 사용된다. 우리가 문자를 일치하도록 탈출해야하는 이유는
  • \\.는 정규식에서 특수 문자 . 때문에 .
  • 일치하는 데 사용되는 패턴을 만족하는 최소 문자 수를 일치, 즉.

그래서, 여기 코드는 다음과 같습니다 -

String str = "[email protected]"; 

Pattern pattern = Pattern.compile("\\[email protected]\\.com"); 
Matcher matcher = pattern.matcher(str); 

if (matcher.matches()) { 
    System.out.println("Matches"); // Prints this for this email 
} 
+0

답장을 보내 주셔서 감사합니다 ... 패턴에서 "\\ S +"및 "\\"이 무엇인지 말씀해 주시겠습니까? – user1717230

+0

@ user1717230'\\ S +'는'@'앞에 비 공백 문자를 매치 시키는데 사용됩니다. '\\.'는'점 '을 이스케이프하기 위해 사용됩니다. '.'는 Regex에서 특별한 의미가 있습니다. 그래서, 당신은 그걸 벗어날 필요가 있습니다. –

+0

감사합니다 rohit .... – user1717230

관련 문제