2017-01-29 11 views
2

電子メールアドレスからファーストネームを抽出したいと思います。電子メールの形式は<first_name>@gmail.comです。電子メールが一致しない場合はNoneを返します。私は、次のPythonコード正規表現の一致を見つけるPythonicの方法

def getFirstName(email): 
    email_re = re.compile(r'(\w+)@gmail.com') 
    match = email_re.search(email) 
    if match == None: 
     return None 
    return match.group(1) 

None検査部は醜いを書きました。誰かがそれを行うより良いpythonic方法を提案することはできますか?

+1

もし一致すれば:return match.group(1) 'が動作します。他に明白なリターンは必要ありません。 – DyZ

+0

'return match.group(1)一致する場合はNone None' –

+0

@PeterWood Nope。 'None 'を返す必要はありません。明示的な返りがない場合、Python関数は常に暗黙的に' None'を返します。 – DyZ

答えて

1

このです。これを処理するPythonicの方法です。よくほとんど。

if match is None 
+0

合意。しかし、私は 'if'文以外のものを探していました。 'with'ステートメントのようなもの。 – Sumanth

0
def get_first_name(email): 
    match = re.search(r'(\w+)@gmail\.com', email) 
    return match.group(1) if match else None 
  • あなたのパターンで.をエスケープする必要があるか、そうでなければ何も一致します。
  • withステートメントはここでは関係ありません。
関連する問題