2011-04-15 11 views
9

Dado este archivo de texto:Node.js: Expresión regular para conseguir "De:" y "To:"

Received: from unknown (HELO aws-bacon-delivery-svc-iad-1007.vdc.g.com) ([10.146.157.151]) 
    by na-mm-outgoing-6102-bacon.iad6.g.com with ESMTP; 12 Apr 2011 14:30:47 +0000 
Return-Path: [email protected]il-bounces.g.com 
Date: Tue, 12 Apr 2011 14:42:37 +0000 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]il.g.com> 
Subject: test 
Mime-Version: 1.0 
Content-Type: text/plain; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 
X-AWS-Outgoing: 199.255.192.79 

testing123 

quiero conseguir todos los campos (Return-path, Fecha, De, A, etc. ..), así como el cuerpo ("testing123)

he intentado juego usando:

var bodyRegex = /[\n]Subject: (.+)[\n](.+)/ 

pero me da valor vacío

Respuesta

20

Prueba esto:.

Código:

//var rePattern = new RegExp(/^Received:(.*)$/); 
var rePattern = new RegExp(/^Subject:(.*)$/); 

var arrMatches = strText.match(rePattern); 

Resultado:

arrMatches[0] -> Subject: test 
arrMatches[1] -> test 
1

Esta pregunta se acaba de sugerir a mí (aunque es bastante viejo !?) y creo que la respuesta aceptada doesn' t exactamente hacer lo que se pidió (obtener todos los campos + cuerpo), así que pensé que voy a compartir esto ...

Para obtener cada hea der y su valor no es una expresión regular bastante simple (http://regexr.com/3e60k) con dos grupos de captura, que también permite saltos de línea dentro de un valor (si sangría):

var pattern = /(.+):\s(.+(?:\n +)?.+)?/g; 

Los pares se pueden recuperar como

var match; 
while (match = pattern.exec(string)) { 
    console.log(match[1] + ": " match[2]); 
} 

es aún más fácil de obtener el cuerpo (http://regexr.com/3e60h), ya que tiene que ser separado de los encabezados con dos caracteres de nueva línea:

var body = string.match(/\n\n([\s\S]+)/)[1]; 

que coincide cualquier cosa después de los dos \n (espacios en blanco y no en blanco).

Vea este violín para un ejemplo completo: http://es6fiddle.net/issocwc9/

Cuestiones relacionadas