0

Unbounceフォームの送信にAweberの自動メール解析を使用していますが、デフォルトの正規表現は少し不安定なようです。

\nemail:\s+(.+?)\nメールアドレスと名前を一致させます\nname:\s+(.+?)\n

問題は、ユーザーに名前を尋ねていないため、正規表現が自動的に次の行、つまり===== FORM DATA =====を取得し、ユーザーに「Hi=====」というメールを送信することです。フォームデータ=====!」

Unbounceメールのサンプルは次のようになります。

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.*?[^\n]+or[^\n]*にそれぞれ置き換えることで、この正規表現をより効率的にすることができます。

于 2012-09-26T17:05:11.293 に答える
0

正規表現パターンを試してください[\n\r]name:[^\S\n\r]*([^\n\r]*)

于 2012-09-26T17:07:38.437 に答える