Привіт, експерти та однокурсники!
У мене є десятки текстових файлів, які містять щомісячні архіви 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
Вибачте за тривалість, але я хотів одразу надати необхідну інформацію.
Дякую, Джеремі