У меня есть некоторые данные, которые имеют неправильный формат (которым я не могу управлять), и отдельные события иногда охватывают несколько строк. Моя стратегия состоит в том, чтобы удалить все новые строки и управляющие символы, разбросанные по данным, чтобы создать единый поток, а затем разделить его обратно на основе согласованной строки даты / времени, которая всегда находится в начале нового действительного события.
Я начал со следующего регулярного выражения, чтобы выполнить это:
new_data = "".join(ch for ch in attachment_data if unicodedata.category(ch)[0]!="C")
new_data2 = re.split('([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+:[0-9]+\s[AaPp][Mm];)',new_data)
Однако мой разделитель (строка даты / времени) заканчивается в другом элементе в результирующем списке. Мне нужно, чтобы он был включен со всеми данными между ним и следующим разделителем. Я искал решения, но не сталкивался с чем-то, что работает.
Так что вместо:
['9/26/2019 6:30:20 PM;', "Last, First;FRONT DOOR;Admitted 'Last, First' (Card: 123456) at 'FRONT DOOR' (IN).]
Я ищу:
['9/26/2019 6:30:20 PM;Last, First;FRONT DOOR;Admitted 'Last, First' (Card: 123456) at 'FRONT DOOR' (IN).]
Спасибо!