¡Hola, expertos y compañeros de aprendizaje!
Tengo docenas de archivos de texto que contienen archivos mensuales de un servidor de listas. Estoy tratando de eliminar / eliminar las respuestas citadas para que cada mensaje solo aparezca una vez en todos los archivos. La mayoría de los usuarios de la lista no usan comillas en línea, ¡eso es útil! Tengo la ID del mensaje, en respuesta a, y toda la información del encabezado, pero sé que esta es una tarea difícil.
Lo complicado es el hecho de que muchos clientes de correo electrónico se utilizan con todos sus diferentes sistemas para tratar las respuestas. Entonces, a veces los correos electrónicos citados vienen con ">" al comienzo de la línea (que ya aprendí a eliminar), algunos saltos de inserción de párrafo (¿aparentemente al azar?), Algunos usan "--- Mensaje original ---" o " PersonZ escribió / escribe: "y, por supuesto, no hay un" final "estándar para marcar el final de la respuesta.
He estado buscando una solución regex y probando posibilidades durante días, y no he encontrado nada que funcione sin ordenar las líneas (es decir, todas las soluciones requieren duplicados consecutivos). Aquí hay un ejemplo de una solución muy cercana que implica hacer que todo sea una nueva línea y clasificarlos, pero clasificarlos anula el propósito del proyecto (análisis semántico).
Encuentra frases duplicadas: cualquier herramienta o expresión regular
Aquí hay otra solución que también está cerca, pero requiere buscar desde el principio de una línea. No funciona en mi situación porque varios clientes de correo electrónico que insertan saltos de párrafo en el medio de las oraciones.
https://stackoverflow.com/questions/32660532/remove-delete-all-duplicate-lines
Estoy en un entorno de escritorio Win10 x64. Soy algo nuevo en expresiones regulares. He estado usando FNR simple (Buscar y reemplazar desde codeplex, GrepWin y TextCrawler Free), y estoy abierto a otras soluciones (o métodos) de software. Si es necesario, puedo descubrir cómo ejecutar comandos php usando xammp. En otras palabras, todo el proceso ha sido una experiencia de aprendizaje, así que estoy feliz de continuar.
EDITAR: si desea ver un ejemplo simulado, con una expresión regular simulada que sé que no funciona y no esperaba que funcione, mire aquí: https://regex101.com/r/FmAMH5/1
Perdón por la longitud, pero quería proporcionar la información necesaria de inmediato.
Gracias Jeremy