import re regex = r"((?:1[0-2]|0?[1-9]):[0-5][0-9]\s?(?:AM|PM|am|pm))\r?\n([F1]?)" test_str = ("10:30 AM\n" "F\n" "10:40 AM\n\n" "10:50 AM\n" "F\n" "11:00 AM\n" "1\n" "11:10 AM\n\n" "11:20 AM\n" "1\n" "11:30 AM\n" "1\n" "11:40 AM\n" "1\n" "11:50 AM\n" "1\n" "12:00 PM\n\n" "12:10 PM\n" "1\n" "12:20 PM\n" "1\n" "12:30 PM\n" "1\n" "12:40 PM\n" "1\n" "12:50 PM\n" "1") print(re.findall(regex, test_str, re.IGNORECASE))
Standard input is empty
[('10:30 AM', 'F'), ('10:40 AM', ''), ('10:50 AM', 'F'), ('11:00 AM', '1'), ('11:10 AM', ''), ('11:20 AM', '1'), ('11:30 AM', '1'), ('11:40 AM', '1'), ('11:50 AM', '1'), ('12:00 PM', ''), ('12:10 PM', '1'), ('12:20 PM', '1'), ('12:30 PM', '1'), ('12:40 PM', '1'), ('12:50 PM', '1')]