SO에서 많은 Regex 이메일 유효성 검사를 찾았지만 빈 문자열을 허용하는 것을 찾지 못했습니다. 이것은 정규식을 통해서만 가능합니까? 빈 문자열 또는 이메일 만 수락 하시겠습니까? 나는 이것을 Regex에서만 가지고 싶다.
SO에서 많은 Regex 이메일 유효성 검사를 찾았지만 빈 문자열을 허용하는 것을 찾지 못했습니다. 이것은 정규식을 통해서만 가능합니까? 빈 문자열 또는 이메일 만 수락 하시겠습니까? 나는 이것을 Regex에서만 가지고 싶다.
답변:
이 정규식 패턴은 빈 문자열과 일치합니다.
^$
그리고 이것은 전자 메일이나 빈 문자열과 일치합니다 (조악하게).
(^$|^.*@.*\..*$)
^
효과적으로 문자열 중간에 전자 메일을 찾거나 아무것도 찾지 않습니다. 이것이 (email_regex)?
더 적합합니다.
^$
작동하지 않지만 다음과 같이 작동합니다 ^(?!.)
. [ ^
문자열 시작, (?!)
부정적 예측, .
모든 문자-줄 바꿈 제외]
일치하는 빈 문자열 또는 이메일
(^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
빈 문자열 또는 이메일과 일치하지만 공백의 양과 일치
(^\s*$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
정규식 자체와 일치하는 이메일에 대해 자세히 알아보십시오.
정규식 이메일과 일치하지 않습니다. 그것은 매우 추하고 길고 복잡 하며 정규식 파서는 어쨌든 처리 할 수 없습니다. 일치하는 라이브러리 루틴을 찾으십시오. 이메일 주소를 일치시키는 실제 문제 만 해결하려면 (즉, 일반적으로 작동하는 잘못된 코드를 원할 경우) 다른 사람이 제출 한 regular-expressions.info 링크를 사용하십시오.
빈 줄 ^$
은 여러 사람들이 언급하고 잘 작동합니다.
이 문제가 해결되면 빈 문자열이나 정확한 전자 메일 ID를 수락합니다.
"^$|^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"