0

テキストファイルに一連のメールがあります。そこから体を取り出したい。サンプルドキュメントを以下に示します。

Email: 1
 ===============


  MIME-Version: 1.0
  Received: by 10.68.8.6 with HTTP; Sat, 7 Apr 2012 01:04:45 -0700 (PDT)
  Date: Sat, 7 Apr 2012 13:34:45 +0530
  Delivered-To: twistyprincess22@gmail.com
  Message-ID: <CAGibXq7_Gjqmp=jOCu2X8+Xngb5QuoqqMQ_ZKbu9jHCoJnFYgA@mail.gmail.com>
  Subject: hello
  From: twisty princess <twistyprincess22@gmail.com>
  To: twisty princess <twistyprincess22@gmail.com>
   Content-Type: multipart/alternative; boundary=047d7b33d826e6762004bd1239b5
  --047d7b33d826e6762004bd1239b5            
  Content-Type: text/plain; charset=ISO-8859-1

   hey How are you doing?

   --047d7b33d826e6762004bd1239b5       
    Content-Type: text/html; charset=ISO-8859-1

     <br><br>hey How are you doing?<br>

     --047d7b33d826e6762004bd1239b5--

だから、このテキストから、私はただ「お元気ですか?」と言いたいだけです。正規表現とC#を使用してこれを実行したいと思います。ありがとう

4

1 に答える 1

1

正規表現を使用boundary=([^\s]+)して境界名を見つける

var bname = _boundaryRegex.Match(text).Groups[1].Value;

次に、正規表現をキャプチャするテキストをフォーマットしますbname

var textCapturer = new Regex(string.Format("--{0}(?<text>.*?)(?=--)",bname);
foreach(var match in textCapturer.Matches(text))
{
    Console.WriteLine(match.Groups["text"]);
}

パラメータの値を見つけて、boundary--BOUNDARY 行間でテキストを一致させようとします。

ただし、正規表現を使用してこの種の解析を行うことはお勧めしません。

于 2012-04-09T05:53:12.717 に答える