内容:
$elements['header']=<<<eot
<div id="wrapper">
<div>
asdfasdf
</div> 
</div>
eot;
$elements['mainpage']=<<<eot
<div class="content-box-tbar">
   <div>asdfadf</div>        
</div>
eot;$elements['page']=<<<eot
<div class="content-box-tb斯蒂芬ar">
   <div>asdfa啊是的发生的发生的df</div>        
</div>
eot;比如我现在要用正则读取
$elements['header']=<<<eot
<div id="wrapper">
<div>
asdfasdf
</div> 
</div>
eot;
这部分内容该这么写正则啊,最好能通用的,我以根据传进来的header,或page或mainpage来读取相应的内容

解决方案 »

  1.   

            string temp = @"$elements['header']=<<<eot
                            <div id=""wrapper"">
                            <div>
                            asdfasdf
                            </div> 
                            </div>
                            eot;
                            $elements['mainpage']=<<<eot
                            <div class=""content-box-tbar"">
                              <div>asdfadf</div>  
                            </div>
                            eot;                        $elements['page']=<<<eot
                            <div class=""content-box-tb斯蒂芬ar"">
                              <div>asdfa啊是的发生的发生的df</div>  
                            </div>
                            eot;";
            var i = "header";
            Console.WriteLine(Regex.Match(temp, @"\$elements\['" + i + @"'\]=<<<eot[^\$]+").Value); 
      

  2.   


           string str = "...";
            string mychar="header"
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"(?is(?<=$elements['"+ mychar +"']=<<<eot\s+)(?<content>.*?)(?=\s+eot;)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
            for (int i = 0; i < m.Count; i++)
            {
                Response.Write(m[i].Groups["content"].ToString()+"<br>");
            }