2017-03-16 49 views
1

我想从lua中的邮件标题中删除一些字段。假设我有一个名为“标题”的字符串,我想删除所有以“Re”开头的标题字段。Lua:从邮件标题中删除字段

我该怎么做?

我想是这样的:

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

,但它不工作....

例如输入

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; 

当删除领域以“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