Видалення відповідей із завантажених електронних листів (тобто непослідовні повторювані речення з файлу txt)


0

Привіт, експерти та однокурсники!

У мене є десятки текстових файлів, які містять щомісячні архіви listserv. Я намагаюся усунути / видалити цитовані відповіді, щоб кожне повідомлення з’являлося лише один раз у всіх файлах. Більшість користувачів списку не використовують вбудоване цитування, тому це корисно! У мене є ідентифікатор повідомлення, відповідь у відповідь та вся інформація в заголовку, але я знаю, що це складне завдання.

Ускладнюючим питанням є той факт, що багато клієнтів електронної пошти використовуються з усіма різними системами для обробки відповідей. Так, іноді цитовані електронні листи надходять із ">" на початку рядка (який я вже навчився видаляти), деякі вставляють перерви абзацу (здається випадковим чином?), Деякі використовують "--- Оригінальне повідомлення ---" або " PersonZ писав / пише: "і, звичайно, не існує стандартного" кінця ", який би позначав кінець відповіді.

Я шукав рішення regex і тестував можливості протягом днів, і не знайшов нічого, що працює без сортування рядків (тобто всі рішення потребують послідовних дублікатів). Ось один із прикладів дійсно близького рішення, яке передбачає зробити все новим рядком та сортувати їх - але сортування їх перемагає мету проекту (семантичний аналіз).

Знайдіть повторювані фрази - будь-який інструмент або регулярний вираз

Ось ще одне рішення, яке також близьке, але воно вимагає пошуку з початку рядка. У моїй ситуації це не працює, тому що різні клієнти електронної пошти, що вставляють абзаци в середині речень.

https://stackoverflow.com/questions/32660532/remove-delete-all-duplicate-lines

Я перебуваю в середовищі робочого столу Win10 x64. Я дещо новачок у регексе. Я використовував прості FNR (Знайти та замінити з codeplex, GrepWin та TextCrawler Free), і я відкритий для інших програмних рішень (або методів). Якщо потрібно, я можу зрозуміти, як запускати команди php за допомогою xammp. Іншими словами, весь процес був досвідом навчання, тому я радий продовжувати.

EDIT: Якщо ви хочете переглянути приклад макетування - з макетним регексом, який, на мою думку, не працює і не очікував, що працює - дивіться тут: https://regex101.com/r/FmAMH5/1

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

Дякую, Джеремі


1
Для когось, як я, дещо знайомий з Regex, але не експерт, мені слід краще зрозуміти (або побачити кілька кращих прикладів) того, що ви починаєте з "текстового" вмісту файлу мудро, і що ви хочете, щоб очікувані результати з’являлися . Тож це означає, що включати більше одного прикладу "до" і очікуваного "після", оскільки у вас є випадки, які ускладнюють справу гірше, то так і бути .... Я можу допомогти або дати якусь відправну пропозицію, якщо ця частина були більш зрозумілі для мене.
Pimp Juice IT

@ Spittin'IT Дякую за запит. Файл надзвичайно різниться, саме тому я спробував надати описовий переказ. Я накинув дуже, дуже швидкий приклад у своїй редагуванні на regex101 з регулярним виразом, який, як я знаю, не працює (і це не означає як рішення). Я просто хочу, щоб повторювані текстові рядки були ідентифіковані, щоб я міг їх видалити - як ми це концептуалізуємо (чи то через інформацію заголовка чи мислення про ці речення як непослідовні рядки, що повторюються), залежить від того, що можливо. Я можу видалити заголовки та підписи електронної пошти без проблем - зараз я переймаюся цитованими відповідями / повторюваним вмістом.
Джеремі

Я не думаю, що регулярний вираз - це правильний інструмент для роботи. Звучить щось на зразок AWK (у поєднанні з деяким регулярним виразом, який використовується всередині AWK) було б добре. Все-таки це не проста проблема, і рішення не буде однолінійним ...
Wouter

@Wouter Я дивився на awk кілька днів тому, трохи ще не розібрався з рішенням. І ти маєш рацію, я б не очікував однолінійного. Я, звичайно, розумію складність мого запитання і присвятив поки що близько 10 годин тому, щоб спробувати розібратися. Все-таки сподіваюся.
Джеремі

@ McDonald's Чи мій приклад допоміг, чи це просто усунуло проблему? У будь-якому випадку, дякую.
Джеремі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.