Я хотел бы извлечь все шаблоны, которые соответствуют сообщению в WhatsApp.Сообщения имеют следующую форму:
Однострочное сообщение:
[19.09.17, 19:54:48] Marc: If the mean is not in the thousands, there's the problem
Многострочное сообщение:
[19.09.17, 19:54:59] Joe: > mean(aging$Population)
[1] 1593.577
Is what I get as solution
Я смог разделить его на Дата, Время, Отправитель и Сообщение, но только для однострочников, сначала прочитав строку текстового файла для строки, а затем разделив эти строки на разные разделители.Однако это не работает для сообщений с несколькими строками.Сейчас я пытаюсь использовать регулярные выражения, с помощью которых мне удалось получить даты и время, но я все еще пытаюсь расширить шаблон для сообщений до нескольких строк.
## reg expressions to match different things in the log
date = r'\[\d+\.\d+\.\d+,'
time = r'\d+\:\d+\:\d+]'
message = r':\s+.+\['
message = re.compile(message, re.DOTALL)
Обратите внимание, что мой журнал написан на немецком языке WhatsApp, поэтому даты немного отличаются.Кроме того, я закончил на, и], чтобы убедиться, что я не получаю совпадения из сообщений.
Я хотел бы сделать то же самое с шаблоном сообщения, заканчиваясь на [, который обычно является началомследующая строка (но может быть не очень надежной, если это можно найти в сообщении на новой строке).
Возможно, есть более простое решение, но я (как вы можете видеть) действительно плохо с регулярным выражением.