提取邮件信息的正则表达式问题

silverguy 2009-03-06 07:15:41
Message-ID: <1236317901.49b0b6cd82bf6@webmail.stu.edu.cn>
Date: Fri, 6 Mar 2009 13:38:21 +0800
From: yzl@stu.edu.cn
To: liuzhou1986@foxmail.com
Subject: =?GB2312?B?09bSu7TO?=
MIME-Version: 1.0
Content-Type: text/plain; charset=GB2312
Content-Transfer-Encoding: 8bit
User-Agent: Internet Messaging Program (IMP) 3.1

我想提取发件人yzl@stu.edu.cn这个地址,代码是
Match match = null;
match = Regex.Match(邮件信息, @"From:\s*(?<From>.*)$", RegexOptions.Multiline);
if(match.Success)
txt_GetSome.Text = match.Groups["From"].Value;

但是返回的是yzl@stu.edu.cnTo: liuzhou1986@foxmail.comSubject: =?GB2312?B?09bSu7TO?=等等,把From后面的全提取上来了,
请问怎么改才能只提取yzl@stu.edu.cn




...全文
158 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
止戈而立 2009-03-06
  • 打赏
  • 举报
回复
Regex reg=new Regex(@"(?<=From:\s*)\S+");
txt_GetSome.Text = reg.Match("邮件信息").Value;
silverguy 2009-03-06
  • 打赏
  • 举报
回复
谢谢你的指导,我再仔细看看!
frank_zu 2009-03-06
  • 打赏
  • 举报
回复
啊?我这调试正常啊,就是不确定你的接受字符串里,邮件名后面是空格+回车换行符,还是别的什么的,这个是关键,你把你接收到的东西分析一下,加到正则的后面,就好了。
silverguy 2009-03-06
  • 打赏
  • 举报
回复
正在分析"From[^:]+:(? <from>\w*@\w*.*\w*)" -无法识别的分组构造。

提示是这样
frank_zu 2009-03-06
  • 打赏
  • 举报
回复
题目没看清!晕,只取邮件,那么关键是结束符号是什么?\s 或\r\n
frank_zu 2009-03-06
  • 打赏
  • 举报
回复
哦,看错了,我没有考虑你的整个字符串,而且只看到了邮件那行,抱歉
你试试@"From[^:]+:(? <from>\w*@\w*.*\w*)"
无法识别,不可能吧
silverguy 2009-03-06
  • 打赏
  • 举报
回复
frank_zu ,你的这个正则表达式无法识别........还是谢谢你
frank_zu 2009-03-06
  • 打赏
  • 举报
回复
Regex r = new Regex(@"[^:]+:(?<from>\w*@\w*.\w*)");
你试试
frank_zu 2009-03-06
  • 打赏
  • 举报
回复
Regex r = new Regex(@"[^:]+:(?<from>\w*@\w*.\w*)");
你试试!
silverguy 2009-03-06
  • 打赏
  • 举报
回复
请问是 "(?<=From:).+" 吗?好像还是不行
nattystyle 2009-03-06
  • 打赏
  • 举报
回复
(?<=From:).+

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧