2016-08-28 7 views
-3

私は以下の正規表現を使用してメールアドレス: re.findall('@(.+?)',str)からドメインを取得していますが、意図した結果が得られません。電子メールからドメインを取得するRegex

私は正しい正規表現を持っています:re.findall('@(\w.+)',str)

パターンの違いを説明してください。

+3

Googleに常に覚えておいてください。 'Regex to email from email'というクエリは、440万の結果を持っています。確かにそのうちの1つがこの共通の共通の問題を解決するのに役立ちます。 –

+2

[Regexは電子メールからドメイン名を取得する]の複製があります(http://stackoverflow.com/questions/39027204/regex-get-domain-name-from-email) –

答えて

0

主な違いは、実際のドメインと一致する点です。

。+?

  • .改行文字以外の文字に一致します。
  • +前の要素(.)を1回以上マッチさせます。
  • ?この場合、リピータの後ろにあるため、「怠け者」になります。これがなければ、可能な限り何度もマッチする "貪欲"になるでしょう。リピーターが「怠け者」である場合、リピーターはできるだけ少ない回数で一致します。 W \

。+

  • \w一致する "単語文字"(一般にアルファベット大文字と小文字、下線)。
  • .改行文字以外の文字に一致します。
  • +前の要素(.)を1回以上繰り返します。 ?が存在しないため、可能な限り何度も一致します。

2つの違いを説明する必要があります。一致したい、または一致しない例があり、元の投稿に追加する場合は、その理由を説明するのに役立ちます。

+0

私は両方の方法を使用して、 abc @ google.com、def @ rediff.com ..etc、両方のパターンで同じ結果が得られますか? @Whothehellisthat – Salman

+0

まあ、あなたは、最初のものは "私に意図された結果を与えていない"と言った。最初のものが望みどおりに動作しないとすでに決めているのなら、なぜ私に尋ねていますか?どうしてわかるの?いくつかの例を挙げてください。 – Whothehellisthat

+0

私は最初のパターンで私が怠惰な検索を使用していることを理解しました、 – Salman

関連する問題