下面这个正则表达式应该怎样写?

andyhere 2015-09-28 01:05:02
<p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p>

我想取aaaaaaaaaaaaa,bbb,ccc 的内容,这个正则表达式应该怎样写?
...全文
192 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-10-01
  • 打赏
  • 举报
回复
很难理解你的需求,猜一下 在 <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx2">bbb</span>”ccc</p> 只取 <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> 中的  aaaaaaaaaaaaa“ bbb ”ccc 在 <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc<span class="zx2">BBB</span></p> 也只取  aaaaaaaaaaaaa“ bbb ”ccc 是这样的吗?
  • 打赏
  • 举报
回复
string patten = @"<p\s+class=""xdct0"">\s*([^<>“]*?)“<span\s+class=""zx3"">([^<>]*)</span>”([^<>]*)</p>";
andyhere 2015-10-01
  • 打赏
  • 举报
回复
继续顶吧!继续顶,继续顶
andyhere 2015-09-29
  • 打赏
  • 举报
回复
比如会把下面的标签都提取了: <p class="xdct0"><strong>ababababababa</strong></p> <hr class="hhhhh" /> <p class="xdct0">@ <strong>a</strong></p> <p class="xdct0"><span class="zzzz">cd <script>szz("vvvv");</script>eeff</span></p> <p class="xdct0"> 1. aaaaaaaaaaaa“<span class="zx3">bb</span>”ccc</p>
andyhere 2015-09-29
  • 打赏
  • 举报
回复
我试过了,结果还是一样的, 会把所有如下的标签的内容都提取到的: <p class="xdct0"> ...</p>
  • 打赏
  • 举报
回复
string patten = @"<p\s+class=""xdct0"">\s*([^“]*?)“<span\s+class=""zx3"">([^<>]*)</span>”([^<>]*)</p>";
你试下这个吧,你不懂我不说啥,但上面的正则已经限定了xdct0和zx3
andyhere 2015-09-29
  • 打赏
  • 举报
回复
里面有一个字打错了,重发下: string patten = @"<p\s+class=""xdct0"">\s*([^“]*)“<span\s+class=""zx3"">([^<>]*)</span>”([^<]*)</p>"; 这个表达式,可以提取网页上所有如下的标签: <p class="xdct0"> ...</p> 我的目标是只提取如下标签: <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> 所以要限定一个"zx3" 请大伙再帮邦忙!
andyhere 2015-09-29
  • 打赏
  • 举报
回复
string patten = @"<p\s+class=""xdct0"">\s*([^“]*)“<span\s+class=""zx3"">([^<>]*)</span>”([^<]*)</p>"; 这个表达式,可以提取所以如下的标签: <p class="xdct0"> ...</p> 我的目标是只提取如下标签: <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> 所以要限定一个"zx3" 请大伙再帮邦忙!
andyhere 2015-09-29
  • 打赏
  • 举报
回复
谢谢大伙,我是从一个网页里提取内容,网面上肯定还有很多的标签,我不可能全列出来呀, starfd 的表达式确实能提取出来,便同时会提取很多其他我不需要的出来,所以starfd 的表达式如能限定“xdct0”,”zx3“,只提取我要的内容,那就OK了,
  • 打赏
  • 举报
回复
你得举例说出什么情况不能通过
DDDDD_________ 2015-09-28
  • 打赏
  • 举报
回复
引用 2 楼 andyhere 的回复:
[quote=引用 楼主 andyhere 的回复:] <p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> 我想取aaaaaaaaaaaaa,bbb,ccc 的内容,这个正则表达式应该怎样写?
谢谢!我测试了下,你的表达式也会提取到其他无关的内容 ,怎么限定“xdct0”,”zx3“呢?[/quote] 人家这个正则至少可以通过你给出的例子。 还有其他例子?
andyhere 2015-09-28
  • 打赏
  • 举报
回复
引用 楼主 andyhere 的回复:
<p class="xdct0"> aaaaaaaaaaaaa“<span class="zx3">bbb</span>”ccc</p> 我想取aaaaaaaaaaaaa,bbb,ccc 的内容,这个正则表达式应该怎样写?
谢谢!我测试了下,你的表达式也会提取到其他无关的内容 ,怎么限定“xdct0”,”zx3“呢?
  • 打赏
  • 举报
回复
string html = @"<p class=""xdct0""> aaaaaaaaaaaaa“<span class=""zx3"">bbb</span>”ccc</p>";
string patten = @"<p\s+class=""xdct0"">\s*([^“]*)“<span\s+class=""zx3"">([^<>]*)</span>”([^<]*)</p>";
Match m = Regex.Match(html, patten);
if (m.Success)
{
    Console.WriteLine(m.Groups[1].Value);
    Console.WriteLine(m.Groups[2].Value);
    Console.WriteLine(m.Groups[3].Value);
}
就这么点html的话,直接就这么匹配了

110,534

社区成员

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

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

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