2

毎日何千通ものメールを受信して​​おり、これらのメールの内容/本文を解析してデータベースにロードしたいと考えています。

私の問題は、最近、電子メール本文を手動で解析していて、ロジックをC# の正規表現に変更したいということです。

メールの本文は次のとおりです。


Gentilissima Agnzia Nexity Residenziale

il nostro utente:

Sig./Sig.ra :パブロ・アゾリン

電子メール: pabloazorin@gmail.com

電話:02322-498900

sta cercando un immobile con le seguenti caratteristiche:

カテゴリー:レジデンツィアーレ

ヒント:ヴィラ

語句のタイプ: Vendita

コムン: アッサーゴ県 ミラノ

帯:非特定性

Fascia di prezzo:非特定


太字のテキストを抽出する必要があり、これには正規表現が必要だと思いました...

それを機能させる方法についての提案をお待ちしております。

ありがとう!

--パブロ

4

7 に答える 7

3

メール内の太字ではない部分がすべてのメールで常にそのように発生すると仮定すると、正規表現を使用してメールからすべての部分を簡単に取得できます。

Sig\./Sig\.ra :(.*)

Email: (.*)

Tel\.: (.*)

sta cercando un immobile con le seguenti caratteristiche:

Categoria: (.*)

Tipologia: (.*)

Tipo di contratto: (.*)

Comune: (.*)

Zona: (.*)

Fascia di prezzo: (.*)

C# の場合

Regex regexObj = new Regex(@"Sig\./Sig\.ra :(.*)

Email: (.*)

Tel\.: (.*)

sta cercando un immobile con le seguenti caratteristiche:

Categoria: (.*)

Tipologia: (.*)

Tipo di contratto: (.*)

Comune: (.*)

Zona: (.*)

Fascia di prezzo: (.*)");
Match matchObj = regexObj.Match(subjectString);
string Sig = matchObj.Groups[1].Value;
string Email = matchObj.Groups[2].Value;
// and so on to get all the other parts
于 2008-12-14T13:26:08.767 に答える
2

正規表現をマスターするを読んでください。この問題や他の同様の正規表現の問題を解決するために知っておくべきことをすべて教えてくれるので、より複雑な正規表現を書き始めるのに十分な理解と洞察が得られます。

于 2008-12-13T17:52:52.440 に答える
2

メールのダウンロードには、Mailbee .Net オブジェクトを使用しました。このライブラリは非常に使いやすく、十分に文書化されています。ただし、プログラミングを避けたい場合は、EmailParser2Databaseなどの電子メール パーサーを使用することもできます。

于 2011-01-25T13:31:05.727 に答える
1

この文字列を行の配列に分割して、すべてのタイトルをキーとしてディクショナリを初期化し、各行でディクショナリからタイトルを検索する方がはるかに優れていると思います (たとえば、「Email:」)。結果を値としてディクショナリに戻します。最後に、すべてのタイトルと値を含むディクショナリが作成されます。そのために正規表現は必要ないと思います。実際には、タイトルの順序は重要ではありません。

于 2009-11-01T19:10:50.077 に答える
1

メールが常に同じ形式である場合、さまざまな方法でこれを行うことができます。これを行う簡単な方法は、改行で分割し、ラベルの後から始まる各行の部分文字列を取得することです。

正規表現を使用すると、多くの名前付きキャプチャを作成する正規表現を作成することになるでしょう。次に、名前が付けられた各グループの名前に一致する Groups プロパティにインデックスを付けて、そこから値を取得できます。もちろん、これはもう少し複雑です。

于 2008-12-13T19:40:38.340 に答える
0

スパム フィルタリングやその他の大量のアプリケーションでは、 MIME ヘッダーの解析に正規表現が少し遅いことがわかりました。コードは多少特殊化されていますが、re2c のようなものに行かなくても得られるのと同じくらい高速な解析を行う C ステート マシンを作成しました。コードは気弱な人向けではありませんが、非常に高速です。

電子メールの場合、正規表現よりも明示的なステート マシンの方が操作しやすいことがわかると思います。goto文の最後の避難所でもあります!

于 2008-12-13T20:06:04.590 に答える
0

これを手動で、または正規表現で行いたくありません。メール内のデータをエンコードする方法は多数ありますが、解析可能な仕様に厳密に準拠していないメールも多数あります。.NET 環境でAnPOPを使用して成功しました。

于 2008-12-15T02:22:45.000 に答える