Удаление ответов в загруженных электронных письмах (т.е. непоследовательных повторяющихся предложений из текстового файла)

325
Jeremy

Привет, эксперты и сокурсники!

У меня есть десятки текстовых файлов, которые содержат ежемесячные архивы рассылки. Я пытаюсь удалить / удалить цитируемые ответы, чтобы каждое сообщение появлялось только один раз во всех файлах. Большинство пользователей списка не используют встроенные кавычки, так что это полезно! У меня есть 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

Извините за длину, но я хотел предоставить необходимую информацию прямо сейчас.

Спасибо джереми

0
Для кого-то вроде меня, который немного знаком с Regex, но не является экспертом, мне нужно лучше понять (или увидеть несколько лучших примеров), что вы начинаете с «текстового» содержимого файла, и что вы хотите, чтобы ожидаемые результаты появились , Так что это означает включение более одного примера «до» и ожидаемого «после», так как у вас есть дела, которые усложняют дело хуже, тогда так и будет… Я мог бы помочь или дать некоторую отправную точку, если эта часть были более понятными для меня. Pimp Juice IT 6 лет назад 1
@ Spittin'IT Спасибо за запрос. Файл варьируется невероятно, поэтому я попытался дать краткое изложение. Я бросил очень, очень быстрый пример в мое редактирование на regex101 с регулярным выражением, которое, как я знаю, не работает (и это не подразумевается как решение). Я просто хочу идентифицировать повторяющиеся текстовые строки, чтобы я мог их удалить - как мы это понимаем (будь то информация заголовка или размышления об этих предложениях как непоследовательных повторяющихся строках), зависит от того, что возможно. Я могу удалить заголовки и подписи электронной почты без проблем - теперь я обеспокоен цитируемыми ответами / повторяющимся содержанием. Jeremy 6 лет назад 0
Я не думаю, что регулярное выражение является правильным инструментом для работы здесь. Похоже, что-то AWK (в сочетании с некоторым регулярным выражением, используемым внутри AWK) было бы хорошо. Тем не менее, это не простая проблема, и решение не будет однострочным ... Wouter 6 лет назад 0
@Wouter, который я смотрел на awk несколько дней назад, но еще не определился с решением. И вы правы, я бы не ожидал, что в одном месте. Я, конечно, понимаю сложность моего вопроса и посвятил около 10 часов тому, чтобы попытаться понять его. Тем не менее, я надеюсь. Jeremy 6 лет назад 0
@ McDonald's Помог ли мой пример, или он просто затуманил проблему? В любом случае спасибо. Jeremy 6 лет назад 0

0 ответов на вопрос

Похожие вопросы