2013-03-25 1 views
0

제외 . 지금까지 나는이 쓴 :C#을 정규병 이메일에 대한 표현하지만, "핫메일, Gmail은, 야후"나는 모든 이메일 주소와 일치하기 위해이 정규 표현식을 다시 있지만 그 포함 <br> "<strong>핫메일, Gmail 및 야후를</strong>"어떻게

^([a-zA-Z0-9_\-\.]+)@(?<!hotmail|gmail|yahoo)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 
+0

더 지역화 된 버전 : _ "이메일에 대한 C#을 정규병 표현 만 제외"[email protected] ""_ – gdoron

+2

** 전자의 유효성을 검사하는 정규 표현식을 사용하지 마십시오 메일 주소! ** http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-anail-address – Carsten

+0

Ok. 나는 C#으로 할거야. 추천을 위해 고마워. –

답변

2

변경 <을 제거하여 부정적 예측에 부정적인 lookbehind을하고 "hotmail,gmail and yahoo" 직접 @을 따를 것으로 가정 위

^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(?!hotmail|gmail|yahoo)(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ 

를 다음과 같이 위치를 변경.

짧은 상당 :

@"^([\w.-]+)@(\[(\d{1,3}\.){3}|(?!hotmail|gmail|yahoo)(([a-zA-Z\d-]+\.)+))([a-zA-Z]{2,4}|\d{1,3})(\]?)$" 
+0

고맙습니다. 작동합니다. –

관련 문제