0

我正在使用 Aweber 的自动电子邮件解析来进行 Unbounce 表单提交,似乎他们的默认正则表达式有点不稳定:

他们将电子邮件与\nemail:\s+(.+?)\n姓名与\nname:\s+(.+?)\n

问题是,因为我没有询问用户的姓名,他们的正则表达式会自动抓取下一行,即 ===== FORM DATA =====,因此它会通过电子邮件向用户发送“Hi =====表格数据 =====!”

以下是取消退回电子邮件的示例:

page_name:
page_id: 2b78ddde-e7bb-11e1-9fde-12313e00ec56
page_url: http://www1.sample.com
variant: C
email: sample@gmail.com
name:

===== FORM DATA =====

email: ["sample@gmail.com"]
ip_address: 88.253.**.**



--
The Unbounce Team
Toll Free 1-888-515-9161
support@unbounce.com
http://unbounce.com

如果没有值,我如何修改他们的正则表达式,使其在行尾停止?

4

2 回答 2

2

将名称正则表达式更改为以下内容:

\nname:[ \t]+(.+?)\n

这里的更改是替换\s[ \t],因为\s将匹配换行符。

如果未提供名称,这将导致匹配失败,如果您希望它仍然匹配但将空字符串放入组中,则可以使用以下内容:

\nname:[ \t]*(.*?)\n

正如 Evandro Silva 所指出的,您可以通过将 or 分别替换为 or 来提高此正则表达式的.+?效率.*?[^\n]+[^\n]*

于 2012-09-26T17:05:11.293 回答
0

尝试正则表达式模式[\n\r]name:[^\S\n\r]*([^\n\r]*)

于 2012-09-26T17:07:38.437 回答