[英]C# Extracting from an Email header using a Regex
所以我试图从C#中的电子邮件标题中提取不同的部分。 我认为对Regex只是没有希望。
我有以下内容:
[["X-Mailgun-Incoming", "Yes"], ["X-Envelope-From", "<dwdwdw@dwdwdw.com>"],["Thread-Topic", "What is status"]]
使用正则表达式,我想说线程主题
我在尝试:
[\\"(Thread)\\-(Topic)\\", (\\")?:[AZ][az][az]+(\\")]
理想情况下,Id只想更改单词以提取其他一些参数
假设您得到了原始字符串
var str = "[[\"X-Mailgun-Incoming\",\"Yes\"],[\"X-Envelope-From\",\"<dwdwdw@dwdwdw.com>\"],[\"Thread-Topic\",\"What is status\"]]";
var arr = str.Split(new string[] { "],[", "[[", "]]" }, StringSplitOptions.RemoveEmptyEntries);
var kpv = arr.Select(x => x.Split(new char[] { ',', '"' }, StringSplitOptions.RemoveEmptyEntries)).ToArray();
如果正则表达式,我会做类似的事情:
[TestMethod]
public void ParseHeadersToDictionary_MultipleHeaders_HeadersAreParsed()
{
var emailHeaders = "[[\"X-Mailgun-Incoming\",\"Yes\"],[\"X-Envelope-From\",\"<dwdwdw@dwdwdw.com>\"],[\"Thread-Topic\",\"What is status\"]]";
var regex = new Regex(@"\[""(?<key>.*?)"",\s?""(?<value>.*?)""]");
Dictionary<string,string> headers = regex.Matches(emailHeaders).Cast<Match>().ToDictionary(item => item.Groups["key"].Value, item => item.Groups["value"].Value);
var result = headers["Thread-Topic"];
Assert.AreEqual("What is status", result);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.