<div class="mall" id="J_mall">
  <ul class= "ul1">
    <li class="aa">
          111111111
     </li>
     <li class = "bb">
        22222222
     </li>
  </ul>
   <ul>
   </ul>
</div>
<div class="xx">
</div>
怎么才能取到 ul1里面的两个li的内容

解决方案 »

  1.   

    补充一下
    <div class="mall" id="J_mall">
      <ul class= "ul1">
        <li class="aa">
              111111111
               <ul>
            <li>
                aa
            </li>
           </ul>
         </li>
         <li class = "bb">
            22222222
           <ul>
            <li>
                aa
            </li>
           </ul>
         </li>
      </ul>
       <ul>
       </ul>
    </div>
    <div class="xx">
    </div>
      

  2.   

    <li ([\S ]*)>([^<]*)</li>取$2的内容,便是
      

  3.   

    有嵌套用平衡组Regex regUl = new Regex(@"(?is)<ul[^>]*?class\s*=\s*""ul1""[^>]*>((?><ul(?<o>)|</ul>(?<-o>)|(?:(?!</?ul).)*)*)(?(o)(?!))</ul>");
    Regex regLi = new Regex(@"(?is)<li[^>]*>((?><li(?<o>)|</li>(?<-o>)|(?:(?!</?li).)*)*)(?(o)(?!))</li>");
    MatchCollection mcUl = regUl.Matches(yourStr);
    foreach (Match mUl in mcUl)
    {
        MatchCollection mcLi = regLi.Matches(mUl.Value);
        foreach(Match mLi in mcLi)
        {
             richTextBox2.Text += mLi.Value + "\n-------------------------\n";
        }
    }
    /*-------输出--------
    <li class="aa">
              111111111
               <ul>
            <li>
                aa
            </li>
           </ul>
         </li>
    -------------------------
    <li class = "bb">
            22222222
           <ul>
            <li>
                aa
            </li>
           </ul>
         </li>
    -------------------------
    */
      

  4.   

    班门弄斧string pattern=@"(?is)<ul[^>]*class\s*=\s*""ul1"">[.\n\r]*</ul>";