![删除下载的电子邮件中的回复(即来自 txt 文件的非连续重复句子)](https://linux22.com/image/1529782/%E5%88%A0%E9%99%A4%E4%B8%8B%E8%BD%BD%E7%9A%84%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%9B%9E%E5%A4%8D%EF%BC%88%E5%8D%B3%E6%9D%A5%E8%87%AA%20txt%20%E6%96%87%E4%BB%B6%E7%9A%84%E9%9D%9E%E8%BF%9E%E7%BB%AD%E9%87%8D%E5%A4%8D%E5%8F%A5%E5%AD%90%EF%BC%89.png)
各位专家、各位同学好!
我有几十个文本文件,其中包含列表服务的月度存档。我试图消除/删除引用的回复,以便每条消息在所有文件中仅出现一次。列表的大多数用户不使用内联引用,所以这很有帮助!我有消息 ID、回复和所有标题信息,但我知道这是一项棘手的任务。
使问题更加复杂的是,许多电子邮件客户端都使用不同的系统来处理回复。因此,有时引用的电子邮件在行首带有“>”(我已经学会了如何删除它),有些会插入段落分隔符(似乎是随机的?),有些会使用“---Original Message---”或“PersonZ wrote/writes:”,当然,没有标准的“end”来标记回复的结束。
我已经搜索正则表达式解决方案并测试了好几天,但还没有找到任何不需要对行进行排序就可以工作的方法(即所有解决方案都需要连续重复)。这里有一个非常接近的解决方案的例子,它涉及将所有内容都变成新行并对其进行排序 - 但对它们进行排序违背了项目的目的(语义分析)。
这是另一个解决方案,也很接近,但它需要从行首开始搜索。它在我的环境中不起作用,因为各种电子邮件客户端会在句子中间插入段落分隔符。
https://stackoverflow.com/questions/32660532/remove-delete-all-duplicate-lines
我在 Win10 x64 桌面环境中。我对正则表达式还不太熟悉。我一直在使用简单的 FNR(codeplex、GrepWin 和 TextCrawler Free 中的“查找和替换”),并且愿意接受其他软件解决方案(或方法)。如果需要,我可以弄清楚如何使用 xammp 运行 php 命令。换句话说,整个过程都是一次学习经历,所以我很乐意继续下去。
编辑:如果您想看一个模拟示例 - 使用我知道不起作用并且不期望起作用的模拟正则表达式 - 请看此处:https://regex101.com/r/FmAMH5/1
抱歉写得这么长,但我想立即提供所需的信息。
谢谢你,杰里米