답변
다음은 실제로 작동하는 정규 표현식입니다. 웹에서 서핑을하고 다른 접근 방식을 테스트하는 데 1 시간을 썼습니다. 과 Google의 최상위 순위에도 불구하고 대부분 작동하지 않았습니다.
[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})
여기에 원래 링크입니다 :
는 당신과 함께 작동하는 정규 표현식 공유 할 http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/
죄송합니다, 이것은 적합하지 않습니다. 플러스 주소 지정 (http://en.wikipedia.org/wiki/E-mail_address#Sub-addressing)과 다른 것들 중에서 실패 할 것입니다 (예 : [email protected]m). 전자 메일 주소에 대한 올바른 정규식을 작성하는 것은 매우/어렵습니다 (불가능하지는 않지만). http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378 –
또한 라틴 문자가 아닌 문자를 허용하는 ICANN의 결정에 대해서도 언급하지 않습니다. 이메일 주소 : http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/1931322#1931322 – BalusC
글쎄, 네 말이 맞아, 더하기 기호는 이메일 주소의 일부가 될 수 있음을 알고 있습니다. 대괄호 사이에 쉽게 추가 할 수 있습니다. 그러나 나는 99.9 %의 사람들이 그것을 사용하지 않는다고 확신하고 있으며 대부분의 이메일 서버는 전자 메일 주소의 일부로 더하기 기호를 허용하지 않습니다. 전자 메일 유효성 검사/추출에서 어떤 정규 표현식이 실패해도 상황이 발생할 수 있다는 것에 절대적으로 동의하십시오. 이 하나는 나를 위해 일했지만 다른 사람들은 보지 못했습니다. – EugeneP
이클립스에 플러그인이 정규식 테스터를 설치를, 당신은 시간의 고래이있을 것이다 정규식 테스트
http://brosinski.com/regex/.
참고 사항 :
플러그인에서 문자 이스케이프에는 백 슬래시를 하나만 사용하십시오. 하지만 자바/C# 문자열로 정규 표현식을 쓸 때 두 개의 이스케이프를 수행 할 때 두 번 이스케이프 처리해야합니다. 처음에는 Java/C# 문자열 메커니즘에서 백 슬래시를 이스케이프 처리 한 다음 실제 정규식 이스케이프 메커니즘에서는 두 번째 이스케이프 처리를 수행합니다.
대괄호/타원으로 캡처 할 텍스트가있는 정규식 섹션을 둘러싸습니다. 그런 다음 Java 또는 C# 정규 표현식의 그룹 함수를 사용하여 해당 섹션의 값을 찾을 수 있습니다.
([_A-Za-z0-9 -] +) @ ([A-Za-z0-9] +) A-ZA-Z0-9] +)
start=0, end=16
Group(0) = [email protected]
Group(1) = abc
Group(2) = .efg
Group(3) = asdf
Group(4) = .cde
그룹 0은 항상 전체 문자열의 캡처입니다 위의 정규식, 다음 문자열
[email protected]
수익률을 사용하여 예를 들어
, 일치.
섹션을 줄임표로 묶지 않으면 일치하는 부분 만 검색 할 수 있지만 텍스트를 캡처 할 수는 없습니다.
프로그래밍 방식으로 하나씩 테스트하고 통합해야하는 정규 표현식을 결정할 수 있으므로 하나의 긴 범용 정규식 정규식보다 몇 가지 정규식을 만드는 것이 덜 혼동 스러울 수 있습니다. 특히 전에 결코 생각해 보지 못한 새로운 이메일 패턴을 발견했을 때.
@ h2g2java 나 자신에 관해서는 이미 비슷한 플러그인을 사용하고 있습니다. 그리고 나는 당신의 대답을 매우 고맙게 생각합니다. 사물들도 정규 표현식으로 작업하는 그러한 도구가 악몽 일 수 있다는 것을 알았습니다. 귀하의 답변은 많은 사람들이 시간을 절약하는 데 도움이 될 것이라고 확신합니다. – EugeneP
나는 그들을 허용하기 위해 몇 가지 대시를 추가해야했습니다. 그래서 자바에서 최종 결과 :
final String MAIL_REGEX = "([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})";
조금 늦었지만 괜찮습니다.
내가 사용하는 것입니다. FireBug의 콘솔에 붙여 넣기 만하면됩니다. 웹 페이지에서 'Textarea'(페이지 하단에 있음)를 찾으십시오.이 태그에는 A 태그에서 발견 된 모든 이메일 주소의 분리 된 목록이 포함됩니다.
var jquery = document.createElement('script');
jquery.setAttribute('src', 'http://code.jquery.com/jquery-1.10.1.min.js');
document.body.appendChild(jquery);
var list = document.createElement('textarea');
list.setAttribute('emaillist');
document.body.appendChild(list);
var lijst = "";
$("#emaillist").val("");
$("a").each(function(idx,el){
var mail = $(el).filter('[href*="@"]').attr("href");
if(mail){
lijst += mail.replace("mailto:", "")+",";
}
});
$("#emaillist").val(lijst);
자바의 이메일 주소 빌드 - 패턴 (Patterns.EMAIL_ADDRESS
)이 완벽하게 작동합니다 :
public static List<String> getEmails(@NonNull String input) {
List<String> emails = new ArrayList<>();
Matcher matcher = Patterns.EMAIL_ADDRESS.matcher(input);
while (matcher.find()) {
int matchStart = matcher.start(0);
int matchEnd = matcher.end(0);
emails.add(input.substring(matchStart, matchEnd));
}
return emails;
}
- 1. 자바 정규식 문자열에서 측정 값 추출
- 2. 자바 - 정규식
- 3. MPN 추출 정규식
- 4. 정규식 일치 부분 추출
- 5. 추출 그룹 및 정규식
- 6. 이메일 검사기 정규식
- 7. 추출 DIV 콘텐츠 (자바)
- 8. 텍스트 블록에서 이메일 주소 추출
- 9. PHP 정규식 호스트 이름 추출
- 10. 추출 나는이처럼 보이는 문자열이 정규식
- 11. 정규식 문제, 그룹에 데이터 추출
- 12. facebook 프록시 이메일 주소의 정규식
- 13. 자바 정규식
- 14. 이메일 주소에서 이름과 이름을 추출 하시겠습니까?
- 15. 자바 문자열에서 텍스트 추출
- 16. 는 문자열에서 첫 번째 단어 추출 - 정규식
- 17. URL에서 정규식 추출 번호 (포트 번호 제외)
- 18. 정규식 (PHP)이 하위 도메인의 이메일 형식
- 19. Jquery를 사용하여 이메일 문자열의 유효성을 검사하는 정규식
- 20. 자바 정규식 정규
- 21. 따옴표가있는 자바 스크립트 정규식
- 22. 자바 스크립트 정규식 결과
- 23. 정규식 자바 스크립트
- 24. 자바 스크립트 정규식 문제
- 25. 자바 정규식 공백 문제
- 26. 자바 정규식 메모리 변수
- 27. 자바 정규식 패턴 일치
- 28. 자바 정규식 문제
- 29. 자바 스크립트 정규식 어려움
- 30. 자바 정규식 및 경계
이메일 주소 및 정규식 : http://stackoverflow.com/questions/201323/what- 확인을 위해 가장 적합한 정규 표현식 이메일 주소 –
예. 그러나 실제로 유효성 검사가 항상 필요한 것은 아닙니다. S와^기호를 넣으면 임의의 텍스트와 함께 작동하지 않습니다. 제 질문과 답변이 다른 사람들에게도 도움이되기를 바랍니다. – EugeneP
해당 스레드에 게시 된 (많은!) 패턴/응답은 IMO 이상의 정보를 제공해야합니다. –