正規表現で様々なパターンで来る姓名を摘出したいのですが少ないコードで書きたいと思っております。
python2.7 でメール
から氏名を抜き出したいと考えております
上下には他のデータも入ってる予定です。
現在このような形で書いており、
もう少しシンプルな書き方があるとは思いますが
どう書いたらいいのかわからず質問させていただきます。
該当のソースコード
Python
1 name = re.search(r"予約者名カナ:(\S+)\s+(\S*)", msg, re.MULTILINE) 2 if name: 3 name_first = name.group(1) 4 name_last = name.group(3) 5 if not name: 6 name = re.search(r"名前カナ:(\S+) (\S+)", msg, re.MULTILINE) 7 name_first = name.group(1) 8 name_last = name.group(2) 9 if not name: 10 name = re.search(r"名前カナ:(\S+)", msg, re.MULTILINE) 11 name_first = name.group(1)
日時:〜〜〜〜〜〜 パターン(1)名前カナ:田中太郎 パターン(2)名前カナ:田中 太郎 パターン(3)名前カナ:田中 太郎 生年月日:〜〜〜〜〜 後ろに半角スペース・全角スペース・改行が来ても 取り出せるようにしたいと思っております。
試したこと
これでパターン押さえれるかと思ったのですが、サーチにひっかりませんでした。どこが違うのでしょうか?
Python
1 name = re.search(r"名前カナ:([^ ]+)( | )+(\S*)", msg, re.MULTILINE) 2 if name: 3 name_first = name.group(1) 4 if name.group(3): 5 name_last = name.group(3)
回答1件
あなたの回答
tips
プレビュー