2016-10-27 3 views
0

デフemail_matcher(emails_file、names_file): 一致= {}これはこれまでのところ、私はそれが動作しません知っていると私は得る私のコードですマッチ使って最高のフィッティングメールに名前正規表現

with open(names_file, 'r') as names: 
    for i in names: 
     with open(emails_file, 'r') as emails: 
      first = i[:(i.index(' '))] 
      pattern2 = i[0] 
      last = i[::-1].strip() 
      last = last[0:(last.index(' '))][::-1] 
      for j in emails: 
       if re.search(first,j): 
        matches[i] = j 
       elif re.search(last,j): 
        matches[i] = j 
       else: 
        matches[i] = 'nothing found' 
return matches 
pass 

一致するものが見つかりません。目標は、すべての電子メールを照合して、一致する電子メールが名前に一致するようにすることです。私はどのように正規表現のパターンを作るのか分かりません、私はドキュメントを見てみたが、idkは正確なことをやってみた。姓と名、電子メール 3である場合は、最初の名前最後の名前とミドルネームは電子メールで 2 - チェックされているかどうかをチェック - - 私は何をしたい、最も正確な順序

1で異なるものをチェックしているかどうかを確認します最初の名前最後の初期 4 - 5かの最初のイニシャル姓をチェック - もし最初の名前に 6をチェック - 姓

はそれが6件の異なる正規表現検索などで、電子メールを通じて複数の検索のだろうかどうかを確認、またはそこにありますすべての電子メールで1回の検索を行い、それがパターン内のどのグループにも当てはまるかどうかを確認する方法

今、私のコードでは、私はただの名前と姓の検索は、まったく得られません。

メールを追加

メアリー・ウィリアムズ - [email protected]

チャールズ・ディアナ・ウエスト - [email protected]

ヤコブジェシカアンドリュース - [email protected]

Javier Daisy Sparks - [email protected]

Paula A. Graham - [email protected](最高の一致するものは見つかりませんでした。ポーラがあった。 [email protected]

マシュー・フォスター - - [email protected]

アーネスト・マイケル・ボーマン - ernest.bowman複数paulasとグラハムは

ジャスミンシャーマン)は、同様の名前のリストであります@ gmail.com

チャド・ヘルナンデス - [email protected]

だから、僕はこれらのすべてを見て、パターンがfirstinitiallastname、firstname.lastname、または姓の@メールであると思われます。事は名前のたわごとトンとさらに多くの電子メールがあるので私は一般的な事を知っていないのでです。しかし、私が[email protected]を探してからfirstinitiallastname @ email、middleinitallastname @ email、そして最悪の場合はlastname @ emailとすれば十分だろうか?

+0

あなたの名前とメールはどの形式ですか? '(" john smith "、[email protected])'、 '(" john smith "、[email protected])'、 '(" john smith "、j。 [email protected]) ' – Addison

+0

@Addison私はちょうど2つの例を追加しました。私は私が見ることができる最高のものを見つけるためにFdを制御する –

答えて

0

私はパターンがすべてのために働くことを理解しました