Estoy tratando de eliminar todas las oraciones si comienzan con un carácter particular hasta la línea de ruptura. Hasta ahora he creado algo como esto, pero elimina solo estos caracteres en particular en lugar de toda la línea. No soy bueno con las expresiones regulares, por lo que estaría agradecido si alguien pudiera dar alguna pista.
De: ABC, DEF <abc.l@def.com [mailto:abc.l@def.com]>
Próximos Eventos:
Hola hola
Enviado: jueves, 28 de febrero de 201117:22 p. m.
var cleanup = msg.replace(/From.|Sent.|To.|Cc.*\n/g, "");salida de corriente:
ABC, DEF <abc.l@def.com [correo a:abc.l@def.com]>
Próximamente fuera de la oficina:
Hola hola
jueves, 29 de julio de 2021 19:48
Rendimiento esperado:
Próximamente fuera de la oficina:
Hola hola
Puedes usar
text = text.replace(/^\s*(?:From|Sent|To|Cc)\b.*[\r\n]*\s*/gm)O, si también necesita eliminar líneas vacías:
text = text.replace(/^(?:\s*(?:From|Sent|To|Cc)\b.*)?[\r\n]*\s*/gm)Vea la demostración de expresiones regulares n.° 1 y la demostración de expresiones regulares n.° 2 . Detalles :
^ - comienzo de una línea (la bandera m lo permite)\s* - cero o más espacios en blanco(?:From|Sent|To|Cc) - cualquiera de las alternativas\b - un límite de palabra.* - el resto de la línea[\r\n]* - cero o más caracteres CR y/o LF\s* - cero o más espacios en blanco. En la segunda expresión regular, la parte \s*(?:From|Sent|To|Cc)\b.* se hace opcional , de modo que cualquier interrupción de la libertad justo después del comienzo de una línea podría consumirse.
demostración de JavaScript:
const text = "From: ABC, DEF <abc.l@def.com [mailto:abc.l@def.com]>\n\nUpcoming Events:\n\nHello hello\n\nSent: Thursday, February 28, 20117:22 PM"; const rx = /^(?:\s*(?:From|Sent|To|Cc)\b.*)?[\r\n]*\s*/gm; console.log(text.replace(rx, ""));