2017-03-16 3 views
1

Je souhaite supprimer certains champs d'un en-tête de courrier dans lua. Dites que j'ai une chaîne appelée "en-tête" et je veux supprimer tous les champs d'en-tête commençant par "Re".Lua: Supprimer le champ de l'en-tête du courrier

Comment est-ce que je peux faire ceci?

J'ai essayé quelque chose comme ceci:

string.gsub(header ,"\nRe.-\n[^%s]", "") 

mais il ne fonctionne pas ....

Par exemple, l'entrée

Received: by a; 
     Tue, 14 Mar 2012 19:43:29 -0700 (PDT) 
X-Received: by b; 
     Tue, 14 Mar 2012 19:43:29 -0700 (PDT) 
Return-Path: <[email protected]> 
Received: from ex.com 
     by mx..com 
     for x 
Received-SPF: pas5a; 
Authentication-Results:; 
     dkim=pass [email protected]; 
Return-Path: <bounce-paypal.de> 
MIME-Version: 1.0 
Reply-To: a 
Subject: b 
From: c 
To: xxx 
Date: Tue, 14 Mar 2012 19:43:29 -0700 (PDT) 
Content-Type: multipart/alternative; 

devrait devenir

X-Received: by b; 
     Tue, 14 Mar 2012 19:43:29 -0700 (PDT) 
Authentication-Results:; 
     dkim=pass [email protected]; 
MIME-Version: 1.0 
Subject: b 
From: c 
To: xxx 
Date: Tue, 14 Mar 2012 19:43:29 -0700 (PDT) 
Content-Type: multipart/alternative; 

lors de la suppression du champ s commençant par "Re". Le problème principal concerne les champs multilignes.

Répondre

1

Essayez

string.gsub(header ,"%f[^\n%z]Re.-\n%f[%S]", "") 
+0

Wow! Cela fonctionne parfaitement. Merci beaucoup! – user60589

0

Si le problème est les champs multi-lignes, d'abord fusionner ces champs dans une seule ligne avec

header = string.gsub(header ,"\n(+)", "\1%1") 

Est-ce que l'édition que vous voulez. Lorsque vous avez terminé, la restauration des champs à plusieurs lignes si nécessaire:

header = string.gsub(header ,"\1", "\n") 

\1 est juste un porte-lieu. Vous pouvez utiliser n'importe quel caractère qui n'est pas utilisé dans les en-têtes de messagerie.

+0

La première commande ne supprime certaines lignes et ne pas fusionner les lignes quand je le lance? Et y a-t-il des caractères qui ne sont pas utilisés dans les en-têtes? – user60589