首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aweber正则表达式拼图

Aweber正则表达式拼图
EN

Stack Overflow用户
提问于 2012-09-27 01:03:54
回答 2查看 152关注 0票数 0

我正在使用Aweber的自动电子邮件解析功能来处理Unbounce表单提交,看起来他们的默认正则表达式有点不可靠:

它们将电子邮件与\nemail:\s+(.+?)\n匹配,将名称与\nname:\s+(.+?)\n匹配

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

下面是一个取消退回邮件的示例:

代码语言:javascript
复制
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

如果不存在值,我如何修改它们的正则表达式,使其在行尾停止?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 01:05:11

将名称regex更改为:

代码语言:javascript
复制
\nname:[ \t]+(.+?)\n

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

如果没有提供名称,这将导致匹配失败,如果您希望名称仍然匹配,但将空字符串放入组中,您可以使用以下方法:

代码语言:javascript
复制
\nname:[ \t]*(.*?)\n

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

票数 2
EN

Stack Overflow用户

发布于 2012-09-27 01:07:38

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12606850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档