@@ -76,23 +76,25 @@ def check_answer(self, answer):
76
76
possible_answers = [answer .content for answer in possible_answers ]
77
77
78
78
if self .is_fill_blank ():
79
- answer = f' { answer } ' # Add 2 spaces to both side to help with regex matching
79
+ return self .check_fill_blank (answer , possible_answers )
80
+ else :
81
+ return answer in possible_answers
80
82
81
- for correct_answer in possible_answers :
82
- regex = correct_answer
83
- if regex .startswith ('(' ):
84
- regex = r'(?:' + regex [1 :]
83
+ @staticmethod
84
+ def check_fill_blank (answer , possible_answers ):
85
+ answer = f' { answer } ' # Add 2 spaces to both side to help with regex matching
85
86
86
- regex = regex .replace (' (' , r'(?:\s?' )\
87
- .replace (')' , r')?' )
88
- regex = r'\s*' + regex + r'\s*'
87
+ for correct_answer in possible_answers :
88
+ regex = correct_answer
89
+ regex = regex .replace (r'(' , r'(?:' )\
90
+ .replace (r' (?:' , r'(?:\s?' )\
91
+ .replace (')' , r')?' )
92
+ regex = r'\s*' + regex + r'\s*'
89
93
90
- match = re .match (regex , answer )
91
- if match :
92
- match_str = match .group (0 )
93
- if match_str == answer :
94
- return True
94
+ match = re .match (regex , answer )
95
+ if match :
96
+ match_str = match .group (0 )
97
+ if match_str == answer :
98
+ return True
95
99
96
- return False
97
- else :
98
- return answer in possible_answers
100
+ return False
0 commit comments