2016-08-28 1 views
-3

아래 정규식을 사용하여 전자 메일 주소 : re.findall('@(.+?)',str)에서 도메인을 가져오고 있는데, 의도 한 결과를 얻지 못했습니다.전자 메일에서 도메인을 가져 오는 Regex

올바른 정규식을 얻었습니다 : re.findall('@(\w.+)',str).

패턴의 차이점을 설명하십시오.

+3

항상 Google에 먼저 기억하십시오. '이메일에서 도메인을 가져올 정규식'에 대한 쿼리에는 440 만 개의 결과가 있습니다. 분명히 그들 중 하나는이 슈퍼 공통 문제를 해결하는 데 도움이됩니다. –

+2

가능한 [Regex get email from email] (http://stackoverflow.com/questions/39027204/regex-get-domain-name-from-ailail) –

답변

0

가장 큰 차이점은 실제 도메인과 일치하는 방식입니다.

.

  • . 개행 문자가 아닌 문자와 일치합니다.
  • + 이전 요소 (.)를 한 번 이상 일치시킵니다.
  • ?이 경우 리피터를 사용하면 "게으르다"가됩니다. 이것이 없으면 가능한 한 여러 번 일치하는 "탐욕스러운"것입니다. 리피터가 "게으른"경우 가능한 한 적은 시간 일치시킵니다. w \

. +

  • \w은 "단어 문자"(일반적 대소 알파벳순 밑줄) 일치한다.
  • . 개행 문자가 아닌 문자와 일치합니다.
  • + 이전 요소 (.)를 한 번 이상 반복합니다. ?이 없기 때문에 가능한 한 여러 번 일치합니다.

두 가지의 차이점을 설명해야합니다. 일치 시키거나 일치시키지 않으려는 예제가 있고이를 원래 게시물에 추가하는 경우, 그 중 하나가 작동하는 이유에 대한 추가 설명과 도움을 줄 수 있습니다.

+0

같은 두 이메일 주소에서 도메인 이름을 추출하는 데 사용하고 있습니다. abc @ google.com, def @ rediff.com .. etc, 두 패턴 모두 동일한 결과를 제공합니까? @Whomenhellhathat – Salman

+0

글쎄, 첫 번째 것은 "나에게 의도 된 결과를주지 못했다"고 말했다. 첫 번째 것이 원하는대로 작동하지 않는다고 이미 결정했다면 왜 나에게 묻고 있니? 어떻게 알았어? 몇 가지 예를 들어주십시오. – Whothehellisthat

+0

나는 게으른 검색을 사용하는 첫 번째 패턴에서, – Salman

관련 문제