如何用正则表达式查找信息

WebDB 2010-06-09 07:20:27
<h3>数据库研究室</h3>
<ul>
<li><b>李波</b> libo@gmail.com
<li><b>张鹏</b> zhangpeng@hotmail.com
...
</ul>
<h3>人工智能研究室</h3>
<ul>
<li><b>冯浩</b> fenghao@126.com
<li><b>齐杰</b> qijie@126.com
...
<ul>
...
...

一个网页的内容如上,如何用正则表达式检索出:姓名、电子邮件、所在实验室?
...全文
154 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
t20100504t 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
引用 1 楼 computerfox 的回复:
不懂,搬个板凳回头看帖。

正则这里有一个高手,你等他出现。


看来我接的不是时候……

这里正则高手只有一个,过客,不过还没出现。真正是高手的原因是他的正则不局限于语言,而是真正的正则,java,php,js的都很精通,还有正则的实现原理等等。

高手也不止过客,还有 思归,伴水,空军,南(009),坏(C++)都是高手。
[/Quote]

都是牛人啊,记下了 !!!
WebDB 2010-06-10
  • 打赏
  • 举报
回复
学习了,感谢大家!
zhangyongtian_0810 2010-06-09
  • 打赏
  • 举报
回复
路过 ....
AOAOCGO 2010-06-09
  • 打赏
  • 举报
回复
Thank youThank youThank you
超维电脑科技 2010-06-09
  • 打赏
  • 举报
回复
学习了还可以知道几个高手的大名.好贴
捷哥1999 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]

引用 1 楼 computerfox 的回复:
不懂,搬个板凳回头看帖。

正则这里有一个高手,你等他出现。


看来我接的不是时候……

这里正则高手只有一个,过客,不过还没出现。真正是高手的原因是他的正则不局限于语言,而是真正的正则,java,php,js的都很精通,还有正则的实现原理等等。

高手也不止过客,还有 思归,伴水,空军,南(009),坏(C++)都是高手。
……
[/Quote]

呀呀的,这些名字都记下。呵呵。
  • 打赏
  • 举报
回复
建议你看看《正则表达式必知必会》
兔子-顾问 2010-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 computerfox 的回复:]
不懂,搬个板凳回头看帖。

正则这里有一个高手,你等他出现。
[/Quote]

看来我接的不是时候……

这里正则高手只有一个,过客,不过还没出现。真正是高手的原因是他的正则不局限于语言,而是真正的正则,java,php,js的都很精通,还有正则的实现原理等等。

高手也不止过客,还有 思归,伴水,空军,南(009),坏(C++)都是高手。
兔子-顾问 2010-06-09
  • 打赏
  • 举报
回复
        public class Employee
{
public string Name { get; set; }
public string Email { get; set; }
}
private static void TestRegex10()
{
Regex reg1 = new Regex(@"(?is)<h3>(?<yjs>.+?)</h3>.*?<ul>.+?</ul>");
Regex reg2 = new Regex(@"(?im)<li><b>(?<name>.+?)</b>\s*(?<email>.+)");
string yourStr = @"<h3>数据库研究室</h3>
<ul>
<li><b>李波</b> libo@gmail.com
<li><b>张鹏</b> zhangpeng@hotmail.com
...
</ul>
<h3>人工智能研究室</h3>
<ul>
<li><b>冯浩</b> fenghao@126.com
<li><b>齐杰</b> qijie@126.com
...
</ul>
...
...
";
Dictionary<string, List<Employee>> dict = new Dictionary<string, List<Employee>>();
MatchCollection mc1 = reg1.Matches(yourStr);
foreach (Match m1 in mc1)
{
List<Employee> list = new List<Employee>();
MatchCollection mc2 = reg2.Matches(m1.Value);
foreach (Match m2 in mc2)
{
Employee e = new Employee();
e.Name = m2.Groups["name"].Value;
e.Email = m2.Groups["email"].Value;
list.Add(e);
}
dict.Add(m1.Groups["yjs"].Value, list);
}

//输出
foreach (string key in dict.Keys)
{
Console.WriteLine("研究室:" + key);
foreach (Employee e in dict[key])
{
Console.WriteLine("姓名:" + e.Name + " email:" + e.Email);
}
}
}
捷哥1999 2010-06-09
  • 打赏
  • 举报
回复
不懂,搬个板凳回头看帖。

正则这里有一个高手,你等他出现。

111,095

社区成员

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

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

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