0

これを 2 つの操作に分割しようとしています。正規表現を 1 つにまとめることはできないようです。しかし、私はここでブレイントラストに誰かができるかどうかを尋ねようと思いました(私は誰かができると確信しています).

基本的に、Exchange の電子メールの受信者フィールドを含む文字列があります。私はそれを個々の受信者に解析したいと考えています。メールなどを検証する必要はありません。カンマが一連の引用符の間にある場合を除いて、基本的にデータはカンマで区切られます。それが私を台無しにしている部分です。

現在、私は次を使用しています: (?"[^"\r\n]*")

これにより、引用された名前と([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0 -9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1 ,3})

メールアドレスを教えてくれる

これが私が持っているものです..データ:

"George Washington" <gwashington@government.net>, "Abraham Lincoln" <alincoln@government.net>, "Carter, Jimmy" <jimmy.carter@presidents.com>, "Nixon, Richard M." <tricky.dick@presidents.com>

私が取り戻したいのはこれです:

"George Washington" <gwashington@government.net>
"Abraham Lincoln" <alincoln@government.net>
"Carter, Jimmy" <jimmy.carter@presidents.com>
"Nixon, Richard M." <tricky.dick@presidents.com>
4

2 に答える 2

1

交換受信者のエントリに一致するパターンを取得するために、交換について十分に知りません。

ただし、例として過去の情報に基づいています。私はあなたにこれを与えます:

["][^"]+["][^",]+(?=[,]?)

これは、投稿するエントリのすべてに一致します。

また、C# での使用方法の簡単な例を知っています。

var input = "\"George Washington\" <gwashington@government.net>, \"Abraham Lincoln\" <alincoln@government.net>, \"Carter, Jimmy\" <jimmy.carter@presidents.com>, \"Nixon, Richard M.\" <tricky.dick@presidents.com>";

var pattern = "[\"][^\"]+[\"][^\",]+(?=[,]?)";

var items = Regex.Matches(input, pattern)
    .Cast<Match>()
    .Select(s => s.Value)
    .ToList();

このパターンが機能しない入力テキストがある場合は、ここに入力を投稿してください。

于 2013-05-08T18:30:42.973 に答える