2016-07-21 1 views
3

클라이언트에 여러 개의 전자 메일을 보낼 필요가 있습니다.Regex에서 여러 EmailIds를 Java에 포함합니다.

하지만 여러 개의 이메일 ID로 이메일을 보내는 동안 문제가 있습니다. 예를 들어

, 내가

[email protected];[email protected] 

를 작성하는 경우 그것은 나에게 오류 알리는 이메일 ID를 슬로우이 올바르지 않습니다.

전자 메일 ID를 세미콜론으로 구분하고 싶지만 내 정규식이 세미콜론을 지원하지 않는 것 같습니다.

적절한 형식은 다음과 같아야합니다

[email protected];[email protected] 

s;[email protected] 

정규식 안내하시기 바랍니다

myregex = "^['_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$" 

를 사용 할 수 없을 겁니다.

+2

왜 단순하지 않습니까? string.split (";")' – Jens

+0

이메일을 어떻게 보냅니 까? 아마도 이메일을':'에 분할하고 여러 수신자를 설정해야합니다. –

+0

실제로 @Pattern – sTg

답변

2

이메일 1 통을 정규화했습니다. 문자열이 email + (+ email;) {여러 번}이 포함 된 경우

지금, 당신은 확인하시기 바랍니다.

당신은 앵커없이 블록으로 이전 패턴을 사용하고이 같은 최종 패턴을 구축해야합니다 \A 문자열의 모호 시작이 있다는 regex demo

주를 참조

String myregex = "['_A-Za-z0-9-+]+(?:\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(?:\\.[A-Za-z0-9]+)*\\.[A-Za-z]{2,}"; 
String final_pattern = "\\A" + regex + "(?:;" + regex + ")*" + "\\z"; 

\z - 매우 문자열 앵커의 끝입니다.

또한 문자 클래스 내부의 + 단순한 문자 + 기호로 처리됩니다/(1 회 이상) 한정사의 특별한 의미를 상실하고되고 있습니다. 또한 불필요한 그룹을 제거하고 모든 캡처 그룹을 "클리너"일치를 위해 캡처하지 않도록 설정했습니다 (캡처 된 값이 필요하지 않은 경우 각 그룹의 스택에 저장하는 이유는 무엇입니까?).

+1

감사합니다. Wiktor. 매력처럼 작동 :) – sTg

0

string.split ("_"); 너 괜찮을거야. 나는 내 몸을 위해 사용했다. bodyremoveregex = (ÎÎÎÎÎ £ On Line) ([,] * [0-9] : [0-9], [0-9] /[0-9]) * __ * /) 제대로 작동했습니다. 표현식 사이에 _를 추가하면됩니다. 어떤 이유로 그것이 내 대답에 _ 기호를 표시하지 않으므로 모든 곳에서 상상할 수있는 것을 상상해보십시오.

+0

'code'를 백틱 ('\''code' \'')으로 묶어야합니다. 그러면 "raw"텍스트가 표시됩니다. –