Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL
Is there a leaderboard for the community?: We have a programming.dev leaderboard with the info on how to join in this post: https://programming.dev/post/6631465
but this wouldn't rock anymore in the second part, so I had to resort to python for it
Python
import sys
f = "\n".join(sys.stdin.readlines())
f = f.replace("don't()", "\ndon't()\n")
f = f.replace("do()", "\ndo()\n")
import re
enabled = True
muls = []
for line in f.split("\n"):
if line == "don't()":
enabled = False
if line == "do()":
enabled = True
if enabled:
for match in re.finditer(r"mul\((\d{1,3}),(\d{1,3})\)", line):
muls.append(int(match.group(1)) * int(match.group(2)))
pass
pass
print(sum(muls))
My first insinct was similar, add line breaks to the do and dont modifiers. But I got toa caught up thinking id have to keep track of the added characters, I wound up just abusing split()-