Disposition: form-data; name="To"
ang <ang11@google.com>
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="CC"
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="BCC"
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="Subject"
MySubject
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="File"; filename=""<br/>
Content-Type: application/octet-stream
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="cf_loader"
on
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="File"; filename=""
Content-Type: application/octet-stream
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="template_id"
-----------------------------7da3d81f160588
Content-Disposition: form-data; name="Body"
MyBody
我编写的代码可以在KeyValuePair中获取信息和写入。如下:
键 - 值
To - ang&lt; \ ang11@google.com>
CC - 空的
BCC - 空的
主题 - 我的主题
等
我的代码用于String类。我需要使用正则表达式,但我不理解它们。请帮忙。感谢。
答案 0 :(得分:0)
不应使用正则表达式编写MIME解析器。问题是你需要一个具有状态的解析器,并且它不能真正适合正则表达式。
但是,您可以使用正则表达式解析部分,例如:
首先通过分割边界将MIME正文拆分为多个部分:var parts = mime.Split("-----------------------------7da3d81f160588");
;
然后,使用part.Split(new { "\r\n" }, 2, StringSplitOptions.None);
;
然后,解析标题。这可以使用正则表达式完成,但可能更容易这样做:headerLine.Split(new [] { ':' }, 2).Select(p => p.Trim());
。
现在,这些单独的部分也可以使用正则表达式,但这比一些简单的Split
要困难得多。