求一个匹配多条件的正则表达式
数据源如下:
string html="
                                     <li class="l1 ">221929</li>  //A位置
				<li class="l4 ">05-24-21:43</li> //B位置
         				<li class="l3" ></li>   //位置1
         				<li class="l3" ></li>   //位置2
         				<li class="l3" ></li>   //位置3
         				<li class="l3" ></li>   //位置4
         				<li class="l3" ></li>   //位置5
         				<li class="l2" ></li>   //位置6
         				<li class="l2" ></li>   //位置8
         				<li class="l2" style="background-color:#FF0000">10</li> //C位置   //位置8
         				<li class="l2" ></li>   //位置9
         				<li class="l2" ></li>   //位置10
         				<li class="l2" ></li>   //位置11
         				<li class="l3" ></li>   //位置12
         				<li class="l3" ></li>   //位置13
         				<li class="l3" ></li>   //位置14
         				<li class="l3" ></li>   //位置15
         				<li class="l3" ></li>   //位置16
         				<li class="l6 " >AABB</li>   //D位置
"
其中,我需要找出的是红色的三个值,并且这三个值是一一对应关系,即每个A值对应一个B值和一个C值,不重复,在C位置处的红字内容有可能出现在位置1-16之间,并不固定,但是A位置和B位置是固定的,每段内容都是从A位置开始,D位置结束,其中开始特征为<li class="l1 ">,这个是固定的,结束位置为<li class="l3" ></li>   //位置16
         				<li class="l6 "     ,这个也是固定的。(其中A位置和B位置的值是固定位数,C位置的值为1-2位数字)
求高手们帮忙给个正则表达式吧,我弄了3天没解决出来
------解决方案--------------------(?is)<li class="l1 ">(?<A>.*?)</li>.*?<li class="l4 ">(?<B>.*?)</li>.*?<li class="l2" style="background-color:#FF0000">(?<C>.*?)</li>.*?<li class="l6 " >(?<D>.*?)</li>
------解决方案--------------------
try...
C# code
Regex reg = new Regex(@"(?is)<li\s+class=""l1\s*"">([^<]+)</li>[^<]*<[^>]*>([^<]+)</li>(?:[^<]*<li[^>]*>\s*</li>)*[^<]*<li[^>]*>(\d{2})</li>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
    richTextBox2.Text += m.Groups[1].Value + "\n";
    richTextBox2.Text += m.Groups[2].Value + "\n";
    richTextBox2.Text += m.Groups[3].Value + "\n";
}