まず、わかりにくい表題ですみません。
環境はpython3系です。
以下例における【影響地域】~【対象機器】間のキーワードを正規表現で抜き出したいです。
python
1import re 2 3message1 = ''' 4【故障発生日時】 2020年06月18日(木)02時14分 5【故障復旧日時】 2020年06月18日(木)02時32分 6【対象サービス】 サービスA 7【影響地域】 山口県 周辺 8【対象機器】 hoge端末 9【状況】 影響地域内にて停止しておりました 10【備考】 特になし''' 11 12match_aff = re.findall(r'【影響地域】((.|\s)*?)【対象機器】', message1) 13 14affect_msg = match_aff [0][0] 15print(affect_msg) 16
これは正常に動作し、「山口県 周辺」が返ります。
しかし、以下の場合正規表現が終わりません。
python
1import re 2 3message2 = ''' 4【故障発生日時】 2020年06月18日(木)02時14分 5【故障復旧日時】 2020年06月18日(木)02時32分 6【対象サービス】 サービスA 7【影響地域】 山口県 周辺 8【対象機器】 hoge端末 9【状況】 影響地域内にて停止しておりました 10【備考】 詳細確認の結果、本故障における影響範囲に変更がございます。 11 ・訂正前 12 【影響地域】 鳥取県 周辺 13 ・訂正後 14 【影響地域】 山口県 周辺''' 15 16 17match_aff = re.findall(r'【影響地域】((.|\s)*?)【対象機器】', message2) 18 19affect_msg = match_aff [0][0] 20print(affect_msg) 21
キーワードの片方である【影響地域】が複数登場したためだと思うのですが、、、
上記message2のようなケースでも、「山口県 周辺」を返せるようにするにはどうしたらよろしいでしょうか?
#【影響地域】の前にスペースやタブが存在しても動作するようにしたいです。
有識者の方、お知恵をいただけますと幸甚です。
https://qiita.com/anqooqie/items/191ad215e93237c77811
等 調べてみたのですが、自力では解決できなかったもので・・・
回答4件
あなたの回答
tips
プレビュー