老调重弹,求一正则!

beckfun 2011-11-30 12:22:55

<ul class="vv41Table">
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
</ul>

页面里有这么一个列表,匹配列表里面的a标签!ul外面也会有a标签,但是不匹配,只匹配<ul class="vv41Table">下的a标签



...全文
193 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
beckfun 2011-12-01
  • 打赏
  • 举报
回复
NND我蛋疼了!结贴!再新开一贴继续问!
dalmeeme 2011-11-30
  • 打赏
  • 举报
回复
		string s = File.ReadAllText(Server.MapPath("~/test.txt"));
MatchCollection matches=Regex.Matches(s, @"(?is)(?<=<ul[^>]+class=""vv41Table""[^>]*>.*?)<a[^>]+>.*?</a>(?=.*?</ul>)");
foreach (Match match in matches)
Response.Write(Server.HtmlEncode(match.Value) + "<br/>");
人称猪 2011-11-30
  • 打赏
  • 举报
回复
我也是学习来的
没看懂~~
q107770540 2011-11-30
  • 打赏
  • 举报
回复

void Main()
{
string str = @"<ul class=""vv41Table"">
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
</ul>
<ul class=""vv41Table1"">
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
<li class='vv4TableDIV1' >
<span class=""vv41A""><a href=""../ddddd/sss"" target=""_blank"">********</a></span></li>
</ul>
";

foreach(Match m in Regex.Matches(str,@"(?is)<ul class=(['""\s]?)vv41Table\1>.*?((<a[^>]*?>[^<>]+</a>).*?)+</ul>"))
{
foreach(Capture c in m.Groups[3].Captures)
{
Console.WriteLine(c.Value);
}
}

/*
<a href="../ddddd/sss" target="_blank">********</a>
<a href="../ddddd/sss" target="_blank">********</a>
<a href="../ddddd/sss" target="_blank">********</a>
<a href="../ddddd/sss" target="_blank">********</a>
*/
}

huangwenquan123 2011-11-30
  • 打赏
  • 举报
回复
            string str = File.ReadAllText(@"E:\1.txt");
Regex reg = new Regex(@"(?is)(?<=<ul[^>]+?class=""vv41Table""[^>]*?>(?:(?!</?ul).)*)<a[^>]+>.*?</a>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);
风一样的大叔 2011-11-30
  • 打赏
  • 举报
回复
我也是来学习的
yzf86211861 2011-11-30
  • 打赏
  • 举报
回复
高手啊 学习
dalmeeme 2011-11-30
  • 打赏
  • 举报
回复
也可以用Dom方式获取,要简单得多:
		HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.Load(Server.MapPath("~/test.txt"));
HtmlNodeCollection anchors=htmlDoc.DocumentNode.SelectNodes(@"//ul[@class='vv41Table']//a");
foreach (HtmlNode anchor in anchors)
Response.Write(Server.HtmlEncode(anchor.OuterHtml) + "<br/>");
dalmeeme 2011-11-30
  • 打赏
  • 举报
回复
嗯,可以这样:
		string s = File.ReadAllText(Server.MapPath("~/test.txt"));
MatchCollection uls = Regex.Matches(s, @"(?is)<ul[^>]+class=""vv41Table""[^>]*>.*?</ul>");
List<string> results = new List<string>();
foreach (Match ul in uls)
{
MatchCollection anchors = Regex.Matches(ul.Value, @"(?is)<a[^>]+>.*?</a>");
foreach (Match anchor in anchors)
results.Add(anchor.Value);
}
foreach (string result in results)
Response.Write(Server.HtmlEncode(result) + "<br/>");
阿非 2011-11-30
  • 打赏
  • 举报
回复
<ul class="vv41Table">
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
</ul>
<ul class="vv41Table1">
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
<li class='vv4TableDIV1' >
<span class="vv41A"><a href="../ddddd/sss" target="_blank">********</a></span></li>
</ul>
------------------------------------
这样结果不正确

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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