patterns = ['не более', 'в пределах', 'разблокир\w+', 'не может превышать', 'превыша\w+', 'самостоятельно', 'имеет право', 'распоряж\w+', '[Дд]еньги снимаются']
matches = []
[matches.extend(re.findall(pattern, bill_text)) for pattern in patterns]
if matches:
matches = money_extractor(bill_text) # распознавание денег
facts = [i.fact.as_json for i in matches]
facts = [f.get('amount') for f in facts]
money = facts
bill = re.search('4\d{19}',bill_text) # забираем счет
try:
start = [m.start() for m in
re.finditer('\s+с\s+\d{2}', bill_text)][0]
# находим упоминание периода
dates = dates_extractor(bill_text[start:]) # распознавание дат
dates = [datetime.date(d.fact.as_json.get('year'),
d.fact.as_json.get('month'),
d.fact.as_json.get('day'))
for d in dates]
date1 = dates[0]
date2 = dates[1]
except:
pass
if money:
money = [0]
return bill, money, date1, date2
except:
return None, None, None, None