以下是一段并不规则的HTML,我想通过一行正则来匹配红色部分的字符,请问如何做?
PS:我目前试用  new Regex(@"<dt>(*.?)<a href="(*.?) ">[a-zA-Z0-9]+</a>(*.?)</dt>",RegexOptions.IgnoreCase);行不通啊,求救!--
<div id="seo">
<div class="first">
<dl>
<dt>
<a href="1.aspx">test1</a>
</dt>

</dl> 
</div>
</div>
</div>

解决方案 »

  1.   

     new Regex(@"<dt>(.*?)<a href="(.*?) ">[a-zA-Z0-9]+</a>(.*?)</dt>",RegexOptions.IgnoreCase);
    *怎么放在.前面了?
      

  2.   

    try 
    [code=C#]
    Regex reg = new Regex(@"(?is)<dt\s*>(?<Content>.*?)</dt>");code]
      

  3.   

    还是用这个吧  为了避免出现样式的可能性
    Regex reg = new Regex(@"(?is)<dt[^>]*>(?<Content>.*?)</dt>");
      

  4.   

               string str= @"<div id=""seo"">
    <div class=""first"">
    <dl>
    <dt>
    <a href=""1.aspx"">test1</a>
    </dt> 
    </dl>  
    </div>
    </div>
    </div>";
               Regex reg = new Regex(@"(?is)(?<=<div[^>]*?id=""seo""[^>]*?>(?:(?!</div).)*)<dt>.*?</dt>");
               foreach (Match m in reg.Matches(str))
                   Console.WriteLine(m.Value);
      

  5.   

    谢谢楼上上上各位,可是,都执行不了耶!
    我试了这个:
    <dt>((.|\n)*?)<a[^>]*?href=(['""]?)(?<url>[^'""\b>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>((.|\n)*?)</dt>也不行
      

  6.   


                string str = @"<div id=""seo"">
    <div class=""first"">
    <dl>
    <dt>
    <a href=""1.aspx"">test1</a>
    </dt> 
    </dl>  
    </div>
    </div>
    </div>";
                Regex reg = new Regex(@"(?is)(?<=<div[^>]*?id=""seo""[^>]*?>(?:(?!</div).)*)<dt>.*?</dt>");
                foreach (Match m in reg.Matches(str))
                    Console.WriteLine(m.Value);
    /*
    <dt>
    <a href=""1.aspx"">test1</a>
    </dt> 
    */没问题啊?
    估计不是你的源字符串吧
    你把你源字符串发来看看。
    还是你怎么测试的?