正则表达式怎么取中间的内容

hq2008 2007-01-10 11:44:51
用c#中正则表达式如何实现
文本如下:
<!-- start -->
<pre>
\n\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
<!-- end -->

第1步:请教高手取出<!--start--><!--end-->中的内容得到以下结果:
<pre>
\n\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
第2步:取出<pre></pre>中的内容得到以下结果:
\n\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

谢谢
...全文
213 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hq2008 2007-01-10
  • 打赏
  • 举报
回复
cpp2017(慕白兄):看了昨天的一个人回复的可以实现,你的我用了一下,好像取不出内容,谢谢你关注这个问题,你快升为钻石了吧,接分吧!
hq2008 2007-01-10
  • 打赏
  • 举报
回复
cpp2017(慕白兄):上次回复的取不出下面的<pre></pre>中的内容啊
<!-- start -->\n详细信息:<br><br>
<pre>\nsfdsfsdfsdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n</pre>
\n<!-- end -->
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
还有,这中间多个空格,少个空格你这长度就不对了.
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
不用正则不行么,直接 ========> 可以.但如果这个string中有无数个<start end怎么办?
bonnibell 2007-01-10
  • 打赏
  • 举报
回复
不用正则不行么,直接

int tempStart,tempEnd;
string strContent = "<!-- start --><pre>\n\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</pre><!-- end --> ";
if(strContent.IndexOf("<!-- start -->")>0)
{
tempStart=strContent.IndexOf("<!-- start -->")+14;
tempEnd=strContent.IndexOf("<!-- end -->");
strContent=strContent.Substring(tempStart,tempEnd-tempStart+1).Trim();
}
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
.是不包括换行的.
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
有好几个人回啊.
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
string str = @" <!-- start --> <pre> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </pre> <!-- end -->"; Regex reg = new Regex(@"<!-- start -->(\s*?<pre>([\s\S]*?)</pre>)\s*<!-- end -->"); MatchCollection ms = reg.Matches(str); foreach(Match m in ms) { Response.Write(Server.HtmlEncode(m.Result("$1"))); Response.Write(m.Result("$2")); }
hq2008 2007-01-10
  • 打赏
  • 举报
回复
我发了可是没有人回啊
hq2008 2007-01-10
  • 打赏
  • 举报
回复
string pattern=@"<pre>(.*)?</pre>";
Match TitleMatch = Regex.Match(strReqContent, pattern,RegexOptions.IgnoreCase | RegexOptions.Multiline );
string strResponse = TitleMatch.Groups[1].Value;
以上的代码怎么取不出<pre></pre>中的内容,是不是\n在就不行
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
楼主不是已经发一个贴子吗?难道没有解决?
cpp2017 2007-01-10
  • 打赏
  • 举报
回复
string str = @"<!-- start -->\n详细信息:<br><br> <pre>\nsfdsfsdfsdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n</pre> \n<!-- end --> "; Regex reg = new Regex(@"<!-- start -->[\s\S]*?(<pre>([\s\S]*?)</pre>)[\S\s]*<!-- end -->"); MatchCollection ms = reg.Matches(str); foreach(Match m in ms) { Response.Write(Server.HtmlEncode(m.Result("$1")) +"<BR>"); Response.Write(Server.HtmlEncode(m.Result("$2"))); }

62,046

社区成员

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

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

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

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