求一正则表达式

atmo 2014-07-05 10:30:00
源码

{YCL_Loop}<li><a href="{YCL_List_FilePath}">{YCL_List_Title}</a></li>
{/YCL_Loop}

{YCL_Loop}<li><a href="{YCL_List_FilePath}">{YCL_List_Title}</a></li>
{/YCL_Loop}

目的是做一个静态标签 用来生成静态页

我想取出{YCL_Loop}和{YCL_Loop}之间得内容 应该结果有两个

我用{YCL_Loop}[\s\S]*^{YCL_Loop}{/YCL_Loop} 这个表达式 从开头截取到结尾 只能有一个 也就是说 从第一个{YCL_Loop}开头,到第二个{/YCL_Loop} 全部给取出来了 我想分开 如何解决?


...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
十三- 2014-07-05
  • 打赏
  • 举报
回复


string test = "{YCL_Loop}<li><a href=\"{YCL_List_FilePath}\">{YCL_List_Title}</a></li> {/YCL_Loop}{YCL_Loop}<li><a href=\"{YCL_List_FilePath}\">{YCL_List_Title}</a></li>{/YCL_Loop}";
Regex reg = new Regex(@"(?<={YCL_Loop})([\s\S]*?)(?={/YCL_Loop})");
MatchCollection mc = reg.Matches(test);
string b="";
foreach (Match m in mc)
{
b += "匹配结果:" + m.Value.PadRight(12, ' ') + "匹配开始位置:" + m.Index + "\n";
}

假装很屌 2014-07-05
  • 打赏
  • 举报
回复
你口头描述的需求:{YCL_Loop}([\s\S]+?){YCL_Loop} 我猜这个才是你想要的:{YCL_Loop}([\s\S]+?){/YCL_Loop} C#里面获取多个结果用MatchCollection
atmo 2014-07-05
  • 打赏
  • 举报
回复
感谢,星期天还加班,辛苦..
atmo 2014-07-05
  • 打赏
  • 举报
回复
? 号表示哪个重复0此或者多次?
  • 打赏
  • 举报
回复
{YCL_Loop}[\s\S]*?{/YCL_Loop}
祥子爱游戏 2014-07-05
  • 打赏
  • 举报
回复
{YCL_Loop}[\s\S]*?{/YCL_Loop} ?是懒惰的意思 不加?应该是贪婪的意思

62,046

社区成员

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

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

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

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