0

ずっと悩んでいたのですが、何かヒントがあれば教えてください...

Outlook メールでは、メール本文のメール情報を次のように転送できます。

From: Jackson, Peter
Sent: Tuesday, 26 March 2013 08:25 PM
To: **Match, Me**; GGG
Cc: AAA, BBB; CCC, DDD; EEE, FFF
Subject: FW: Good Morning

また

From: Jackson, Peter
Sent: Tuesday, 26 March 2013 08:25 PM
To: AAA; GGG
Cc: BBB; **Match, Me**; DDD; EEE, FFF
Subject: FW: Good Morning

「To」または「Cc」リストに「Match, Me」がある場合、「Sent」で DateTime を取得したいと思います。

私が今持っている正規表現は次のとおりです。

(<b>)?Sent:(</b>)?\s(?<MatchDateTime>[A-Z][a-z]{5,8},\s[0-9]{1,2}\s[A-Z][a-z]{2,9}\s[0-9]{4}\s[0-9{1,2}:[0-9][0-9]\s[A-Z]{2})(<br\s?/?>)?(\\r\\n)*?(<b>)?To:(</b>)?\s.[^<]*?(Match, Me).*?(<br\s?/?>)?(\\r\\n)*?(<b>)?Cc:(</b>)?\s.[^<]*?(Match, Me).*?(<br\s?/?>)(\\r\\n)*

以下にテキストの例を示します。

<span lang=\"EN-US\" style=\"font-size:10.0pt;font-family:"Tahoma","sans-serif"\"> BBB, AAA [mailto:AAA.BBB@ccc.com.au]\r\n<br>\r\n<b>Sent:</b> Tuesday, 26 March 2013 5:23 PM<br>\r\n<b>To:</b> **Match, Me**; DDD; EEE<br>\r\n<b>Cc:</b> EEE, ZZZ; GGG, FFF<br>\r\n<b>Subject:</b> RE: Good Morning<o:p></o:p></span>

また

<span lang=\"EN-US\" style=\"font-size:10.0pt;font-family:"Tahoma","sans-serif"\"> BBB, AAA [mailto:AAA.BBB@ccc.com.au]\r\n<br>\r\n<b>Sent:</b> Tuesday, 26 March 2013 5:23 PM<br>\r\n<b>To:</b> UUU, AAA, DDD; EEE<br>\r\n<b>Cc:</b> Match, Me; ZZZ; GGG, FFF<br>\r\n<b>Subject:</b> RE: Good Morning<o:p></o:p></span>

私の正規表現は 1 つの条件 (To リストまたは Cc リスト) にのみ一致し、両方には一致しません。

4

1 に答える 1

0

これは私が思いついたものです:

(\<b\>)?Sent:(\</b\>)?\s(?<MatchDateTime>[A-Z][a-z]{5,8},\s[0-9]{1,2}\s[A-Z][a-z]{2,9}\s[0-9]{4}\s[0-9]{1,2}:[0-9][0-9]\s[A-Z]{2}).*?(To|Cc):(\</b\>)?\s[^<]*?(Match, Me)

まず、正規表現構文でよく使用されるすべての<and文字をエスケープする方がよいと思います。日付一致グループの後に、最初または一致するまで入力を読み取る>非貪欲を追加しました。次に、一致するまで読み取ります。.*?ToCcMatch, Me

于 2013-04-10T01:39:23.033 に答える