关于正则表达式-邮箱

wang466791739 2011-08-11 02:33:21
有些头疼的问题,实在解决不了,所以来CSDN找各位人才帮忙。

关于正则表达式来提取论坛回复内容中的邮箱地址。目前只能提取下面这三种情况:




不能提取以下邮箱(虽然有些能提取,但是邮箱后面会跟随一些中文)
//换行不能提取
//虽然能提取,但是后面会跟随:楼主你懂的

我的正则表达式如下:
Regex i= new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");

求高手解答
...全文
1711 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
firelv1187 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

C# code

string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));//换成你的字符串
Regex reg = new Regex(@"(?is)\w+([-+.']\w+)*@\w+([-.]\w+)*\.[\w\s]*?([-.]\w+)*?com");
……
[/Quote]
有源码吗 我是新手想学习一下 我的邮箱759469221@qq.com 谢谢 求发给我一份
巧讯猴哥 2012-03-07
  • 打赏
  • 举报
回复
string str = Regex.Replace(m.Value,@"[\u4e00-\u9fa5]","");
用这个再对提取的邮箱处理 去掉中文
巧讯猴哥 2012-03-07
  • 打赏
  • 举报
回复
string str = Regex.Replace(m.Value,@"[\u4e00-\u9fa5]","");
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
为什么你还没睡啊?
本想忽悠下你的,我用字符串搞定了,但是代码不美观。
所以还是借用你的正则表达式吧。既然你付出了劳动。那么就要让你收获!
嘿嘿
huangwenquan123 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 wang466791739 的回复:]
引用 33 楼 huangwenquan123 的回复:


用正则表达式如何查找这个链接中的0,当然,链接内容不是固定的。
但是格式是固定的。
http://dzh.mop.com/whbm/20110809/0/lglOSOI2748694Fl.shtml
[/Quote]
            string str = "http://dzh.mop.com/whbm/20110809/0/lglOSOI2748694Fl.shtml";
Regex reg = new Regex(@"(?is)[^\.]+/(\d+)/[^\.]+?\.shtml");
Console.WriteLine(reg.Match(str).Groups[1].Value);
Console.ReadLine();
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 huangwenquan123 的回复:]
[/Quote]

用正则表达式如何查找这个链接中的0,当然,链接内容不是固定的。
但是格式是固定的。
http://dzh.mop.com/whbm/20110809/0/lglOSOI2748694Fl.shtml
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
看到了,是在别人帖子里 = =
谢谢啊,太感谢你了
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 huangwenquan123 的回复:]
[/Quote]
哪个帖子有回复啊?没看到呢
huangwenquan123 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 wang466791739 的回复:]
请教huangwenquan123
最后一个问题就完成了!
网站的源码我提取出来了。
我要获得这段链接中的276这个数字,怎么办?href='/bxmp/20110418/276/O3S877I262ea0dFO.shtml'>

HTML code

<!-- baidu_tc block_begin: {"type":"PAGE_TURNING", "action":"SHOW"……
[/Quote]这个帖子中有回复了,你去看看
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
请教huangwenquan123
最后一个问题就完成了!
网站的源码我提取出来了。
我要获得这段链接中的276这个数字,怎么办?href='/bxmp/20110418/276/O3S877I262ea0dFO.shtml'>

<!-- baidu_tc block_begin: {"type":"PAGE_TURNING", "action":"SHOW"} -->
<div class="page">
<div class="inner"><a class='on'>1</a><a href='/bxmp/20110418/1/O3S877I262ea0dFO.shtml'>2</a><a href='/bxmp/20110418/2/O3S877I262ea0dFO.shtml'>3</a><a href='/bxmp/20110418/3/O3S877I262ea0dFO.shtml'>4</a><a href='/bxmp/20110418/4/O3S877I262ea0dFO.shtml'>5</a><a href='/bxmp/20110418/5/O3S877I262ea0dFO.shtml'>6</a><a href='/bxmp/20110418/6/O3S877I262ea0dFO.shtml'>7</a><a href='/bxmp/20110418/7/O3S877I262ea0dFO.shtml'>8</a><a href='/bxmp/20110418/8/O3S877I262ea0dFO.shtml'>9</a><a href='/bxmp/20110418/9/O3S877I262ea0dFO.shtml'>10</a><a class='endgray' href='/bxmp/20110418/276/O3S877I262ea0dFO.shtml'>尾页</a><a class='end' href='/bxmp/20110418/1/O3S877I262ea0dFO.shtml'>下一页>></a></div>
</div>
<!-- baidu_tc block_end -->
hoolooday 2011-08-11
  • 打赏
  • 举报
回复
此帖留名,
MARK一计.
a8509190 2011-08-11
  • 打赏
  • 举报
回复
学习了。。。。
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 huangwenquan123 的回复:]
引用 23 楼 wang466791739 的回复:
嗯,一个问题解决了,另一个问题又来了。呵呵
还要处理重复的邮箱。
大哥,看电影去了= =
[/Quote]

啊?本来我打算自己解决的,尴尬啊
谢谢了
huangwenquan123 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 wang466791739 的回复:]
嗯,一个问题解决了,另一个问题又来了。呵呵
还要处理重复的邮箱。
[/Quote]大哥,看电影去了= =
huangwenquan123 2011-08-11
  • 打赏
  • 举报
回复

string str=@"<li class=""details"">
<div class=""inner""><p>LZ发给我。我帮你顶楼。嘻嘻</p>
<p>159995960@qq.com</p></font></div><li class=""details"">
<div class=""inner"">2499193917@qq.com</font></div>
</li><li class=""details"">
<div class=""inner"">2499193917@qq.com</font></div>
</li>";
Regex reg = new Regex(@"(?is)(?<=<div[^>]*?class=""inner""[^>]*?>(?:(?!</?div).)*)[a-z\d]+?@[^\.]+\.com");
List<string> list = new List<string>();
foreach (Match m in reg.Matches(str))
list.Add(m.Value);
IEnumerable<string> result = list.Distinct();
foreach (string s in result)
Console.WriteLine(s);
Console.ReadLine();
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
嗯,一个问题解决了,另一个问题又来了。呵呵
还要处理重复的邮箱。
huangwenquan123 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wang466791739 的回复:]
跪谢!小弟愚笨!不知大仙的独特。现已理解!
[/Quote]解决了?
看了下那个网站,主要就是你提的那两个格式。
你先抓取页面,正则还是那个正则,只是改成Matches匹配多项的就可以
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
跪谢!小弟愚笨!不知大仙的独特。现已理解!
wang466791739 2011-08-11
  • 打赏
  • 举报
回复
你的QQ能发给我吗?或者远程帮我看看代码,我跟你的思路不是一样的,但是正则表达式是一样的
加载更多回复(19)

110,533

社区成员

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

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

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