Привет, эксперты и сокурсники!
У меня есть десятки текстовых файлов, которые содержат ежемесячные архивы рассылки. Я пытаюсь удалить / удалить цитируемые ответы, чтобы каждое сообщение появлялось только один раз во всех файлах. Большинство пользователей списка не используют встроенные кавычки, так что это полезно! У меня есть ID сообщения, In-Reply-To и вся информация заголовка, но я знаю, что это сложная задача.
Сложность в том, что многие почтовые клиенты используют разные системы для работы с ответами. Так, иногда цитируемые электронные письма идут с «>» в начале строки (которую я уже научился удалять), некоторые вставляют разрывы абзацев (на первый взгляд случайно?), Некоторые используют «--- Original Message ---» или « PersonZ писал / пишет:«и, конечно, нет стандартного" конца ", чтобы отметить конец ответа.
Я искал решение для регулярных выражений и возможности тестирования в течение нескольких дней, и не нашел ничего, что работает без сортировки строк (т. Е. Все решения требуют последовательных дубликатов). Вот один пример действительно близкого решения, которое включает в себя создание новой строки и их сортировку, но их сортировка наносит ущерб цели проекта (семантический анализ).
Найти повторяющиеся фразы - любой инструмент или регулярное выражение
Вот еще одно решение, которое также близко, но требует поиска с начала строки. В моей ситуации это не работает, потому что различные почтовые клиенты вставляют разрывы абзацев в середине предложений.
https://stackoverflow.com/questions/32660532/remove-delete-all-duplicate-lines
Я нахожусь в среде рабочего стола Win10 x64. Я немного новичок в регулярных выражениях. Я использовал простой FNR (поиск и замена из codeplex, GrepWin и TextCrawler Free), и я открыт для других программных решений (или методов). При необходимости я могу выяснить, как запускать команды php с помощью xammp. Другими словами, весь процесс был опытом обучения, поэтому я рад продолжить.
РЕДАКТИРОВАТЬ: Если вы хотите взглянуть на пример макета - с ложным регулярным выражением, которое я знаю, не работает и не ожидал работать - посмотрите здесь: https://regex101.com/r/FmAMH5/1
Извините за длину, но я хотел предоставить необходимую информацию прямо сейчас.
Спасибо джереми