import re
regex = re.compile(r"\d*,?\d*,?\d{0,3}\.\d\d", flags=re.MULTILINE)
test_str = ("Hey Boss: \n\n"
"Just so you know, I did all the crimes. Like 100 of them. So many crimes. \n\n"
"We should probably delete this e-mail before we get sued.\n\n"
"xoxoxo,\n\n"
"Lackey.\n\n\n"
"Crime, INC.\n\n"
"For services rendered: \n\n"
"Tax Fraud 100.00\n\n"
"Price-fixing 9.99\n\n"
"Insider trading 20.00\n\n"
"TOTAL 129.99 \n\n\n"
"Here is a stupid number .00\n\n"
"And here is another stupid number 1,000000,000.00\n\n"
"Dear Boss:\n\n"
"Remember all those crimes I've committed? They made the firm $1,280,012.05. Maybe a raise?\n\n"
"xoxoxo,\n\n"
"Lackey\n\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html