簡體   English   中英

使用正則表達式解析電子郵件回復

[英]Parsing email responses using Regex

我試圖使用以下鏈接中提供的解決方案以編程方式解析電子郵件回復: 從引用的回復中解析電子郵件內容

在大多數情況下,除了gmail和Outlook,它都能正常工作。 它還選擇發送方行:
在2013年3月31日,星期日,上午10:57,<abc@domain.com>寫道:

我對正則表達式不太了解,但是以下代碼應該正確解析它:

new Regex("From:\\s*" + Regex.Escape(address), RegexOptions.IgnoreCase)
new Regex("\\n.*On.*(\\r\\n)?wrote:\\r\\n", RegexOptions.IgnoreCase | RegexOptions.Multiline)

樣本數據:
請務必閱讀。\\ r \\ n \\ r \\ n \\ r \\ n在2013年3月31日,星期日,上午10:57,<\\ r \\ n abc@domain.com>寫道:\\ r \\ n \\ r \\ n>

預期結果:
讀吧。

當前成果:
讀吧。 2013年3月31日,星期日,上午10:57,寫道:

使用捕獲組來獲得此匹配項的一部分:

new Regex("\\n(.*)[\\r\\n]*On(?:.|\\r|\\n)*?wrote:\\r\\n", RegexOptions.IgnoreCase | RegexOptions.Multiline)

另外,請使用惰性運算符而不是貪婪的運算符 :。* =>。*?
提供的鏈接將告訴您原因。

編輯:正如我的評論所指出的,\\ r和\\ n不會被點匹配。 它還說,建議您使用惰性運算符是很愚蠢的,盡管我會接受,因為它仍然是值得將來學習的知識。

Edit2:實際上,這不是正則表達式的第二部分。 編輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM