2017-03-16 12 views
1

luaのメールヘッダからいくつかのフィールドを削除したい。 "header"という文字列があり、 "Re"で始まるすべてのヘッダーフィールドを削除したいとします。Lua:メールヘッダからフィールドを削除する

どうすればいいですか?

私はこのような何か試してみました:入力

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; 

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; 

なるべき例えば

....

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

をしかし、それは動作しません。フィールドを削除するとき「Re」で始まる。主な問題は複数行のフィールドです。

答えて

1

は、いくつかの行を削除しない

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

うわー!それは完全に動作します。どうもありがとう! – user60589

0

問題は、複数行のフィールドで、最初にあなたがしたいの編集を行います

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

でシングルラインフィールドにそれらをマージする場合。終了したら、必要に応じて、複数行のフィールドを復元:

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

\1だけプレースホルダーです。メールヘッダーで使用されていない文字を使用できます。

+0

最初のコマンドを試してみて、私はそれを実行したときに行をマージしないのですか?メールヘッダーには使用されていない文字はありますか? – user60589

関連する問題