当前位置: 代码迷 >> ASP.NET >> 正则表达式如何取<start-><end->中间的内容
  详细解决方案

正则表达式如何取<start-><end->中间的内容

热度:5558   发布时间:2013-02-26 00:00:00.0
正则表达式怎么取<!--start--><!--end-->中间的内容
用c#中正则表达式如何实现
文本如下:
<!--   start   -->
<pre>
\n\naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</pre>
<!--   end   -->  

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

谢谢

------解决方案--------------------------------------------------------
不用正则不行么,直接

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();
}
------解决方案--------------------------------------------------------
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 "))); }