#!/usr/bin/python import re with open('03a.txt') as f: text = f.read() reg = re.compile(r'(?Pmul\((?P[0-9]+),(?P[0-9]+)\))|(?Pdo\(\))|(?Pdon\'t\(\))') total = 0 enabled = True for match in reg.finditer(text): if match.group('do'): enabled = True elif match.group('dont'): enabled = False elif match.group('mul'): if enabled: total += int(match.group('num1')) * int(match.group('num2')) else: raise RuntimeError() print(total)