求一个正则表达式,嵌套标签的

lovebaby 2012-11-05 10:01:51

{hc:category parentid="1"}
<div class="item_363">
<div class="item_title"><span class="more">更多>></span><a href="[$Category.Url]" target="_blank" title="[$Category.ClassName]">[$Category.ClassName]</a></div>
<div class="spaceline"></div>
<ul>
{hc:list cateid="$cateid" scope="self" num="4" ispic=1 titlenum="14"}
<li><span>2012-09-21</span><a href="./" target="_blank" title="(FHP)法国私立医院协会代表团访问燕达国际">(FHP)法国私立医院协会燕达国际</a></li>
{/hc}
</ul>
<div class="spaceline"></div>
</div>
{/hc}

原来没有里面嵌套的标签,我用\{hc:category .+?\}(.|\s)*?\{/hc\}可以匹配上面的所有内容,但现在因为需求改变里面加上了一层标签,这样上面的正则只能匹配到第一个{/hc},之后的内容无法匹配到,求一个能够匹配上面的所有内容的正则表达式。
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebaby 2012-11-06
  • 打赏
  • 举报
回复
牛人出现了,谢谢
  • 打赏
  • 举报
回复
其实最简单的 就是把问号去掉 即
string pattern = @"\{hc:category .+?\}(.|\s)*\{/hc\}";
,不过有一定的局限性 采用平衡组方案
string pattern_1 = @"(?isx)\{hc:category[^\{}]*\}(?>\{hc[^\{}]*\}  (?<Open>)|\{/hc\} (?<-Open>)|(?:(?!\{/?hc\b)[\s\S])*)*(?(Open)(?!))\{/hc\}";
lovebaby 2012-11-06
  • 打赏
  • 举报
回复
嗯,网上查了一些资料,会用到正则的组定义。看着匹配嵌套html标签的正则头疼,理不出头绪
诺维斯基 2012-11-06
  • 打赏
  • 举报
回复
好像又要用到平衡组了
dlgdd 2012-11-06
  • 打赏
  • 举报
回复
太高级了,纯帮顶了。。。期待大牛出现
lovebaby 2012-11-06
  • 打赏
  • 举报
回复
坛子里的大神和牛人呢
lovebaby 2012-11-06
  • 打赏
  • 举报
回复
lovebaby 2012-11-05
  • 打赏
  • 举报
回复

62,074

社区成员

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

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

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

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