

お世話になります。  
このように過去に自分が送信したメールの返事で、  
自分の書いた文も書いてあるメールファイルがあり、

[code]

    ≪^------------------　××様へ------------------------    
    〇月〇日の詳細：
    ［場所］△△ホール
    ［持ち物］特になし
     備考
      当日は公共機関をご利用ください。
     ---------------------------------------------------^≫
    是非お越しください
    
    
    
    
    -----Original Message-----
    From:〇×
    Sent: Mondey
    To: ☆×
    Subject: 日程について
    
    こんにちは
    下記のような形で日程を教えてください
    ≪^------------------　〇〇へ------------------------
     〇月〇日の詳細：
    ［場所］××ホール
    ［持ち物］特になし
     備考
      〇〇〇〇〇〇〇〇〇〇
     ---------------------------------------------------^≫
    
[/code]

一番上の「××様へ」の中身である

> △△ホール  
>  特になし  
>  当日は公共機関をご利用ください。

のみをコマンドプロンプト上に出力させたいと思い、他の方が過去に質問された内容や、  
自分が正規表現について質問した際に頂いた答えをもとにこのように書いてみたのですが、

[code]

    import ExtractMsg
    import re
    from glob import glob
    import sys
    args = sys.argv
    
    for filename in glob(r"{}/*.msg".format(args[1])):
        msg = ExtractMsg.Message(filename)
        msg_message = msg.body
        m = re.search('(.*)(^≪^.*-)(.*)(^-.*^≫)(.*)', msg_message, flags 
    (re.DOTALL | re.MULTILINE))
        if m :
            x = re.sub('\［.*\］', "", m.group())
            print(x)
        else:
            pass
    
[/code]

何も出力されず、困っている状態です。下の

「〇月〇日の詳細：  
［場所］××ホール  
［持ち物］特になし  
備考  
〇〇〇〇〇〇〇〇〇〇  
がメール内に書いてある場合にそれを出力しない」

というコーディングができればよいなと思ったのですが、  
いまいちどうやればよいかわかりません。  
ご教授頂ければ幸いです。


CC BY-SA 4.0
2019-01-09T10:31:30.480
51842
2020-03-25T04:03:40.603
2019-01-11T11:50:21.863
3060
31729
question
python python3 正規表現
pythonでメールファイルから本文の指定部分のみを抽出したい


「正規表現を使わなければいけない」というのでなければ、愚直に実装するのもありかと。デバッグしてないので動作確認してないですが。

[code]

    with open(file, "r") f:
      lines = f.readlines()
    
    stat = 0
    
    for line in lines:
      if stat == 0:
        if line.startwith("［場所］"):
          print line.strip("［場所］")
          stat = 1
      if stat == 1:
        print line.strip("［持ち物］")
        stat = 2
      if stat == 2:
        # 「備考」を読み飛ばす
        stat = 3
        continue
      if stat == 3:
        print line
        stat = 0
    
[/code]


CC BY-SA 4.0
2019-01-10T09:30:43.987
51862
2019-01-10T09:30:43.987
9592
51842
answer