回答編集履歴

1

追記

2019/11/11 13:22

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -53,3 +53,69 @@
53
53
  ('昭和50年', '6月')
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ コメントを受けて
60
+
61
+ ---
62
+
63
+ 徐々にデータを削り取っていけば良いのです。
64
+
65
+ ```Python
66
+
67
+ import re
68
+
69
+ import sys
70
+
71
+
72
+
73
+
74
+
75
+ raw_data = sys.stdin.read()
76
+
77
+
78
+
79
+ # イベントごとに分けて
80
+
81
+ events = re.split(r'\n(?=イベント名)', raw_data)
82
+
83
+
84
+
85
+ event_months = []
86
+
87
+ for event in events:
88
+
89
+ # 開催月の行を取得して
90
+
91
+ m = re.search(r'開催月\n(.*)\n?備考', event).group(1)
92
+
93
+ # 無駄な空白を削除して
94
+
95
+ m = re.sub(r'\s', '', m)
96
+
97
+
98
+
99
+ # 正規表現で解析
100
+
101
+ m = re.fullmatch(r'((?:昭和|平成)\d{1,2}年)?(\d{1,2}月)?', m).groups()
102
+
103
+ event_months.append(m)
104
+
105
+
106
+
107
+ # できあがり
108
+
109
+ print(event_months)
110
+
111
+ ```
112
+
113
+
114
+
115
+ **実行結果** [Wandbox](https://wandbox.org/permlink/0kq2xvzmg89Q9Uwx)
116
+
117
+ ```
118
+
119
+ [('平成3年', '10月'), ('昭和51年', '2月'), (None, None)]
120
+
121
+ ```