我的正则表达式出了什么问题?

时间:2011-02-08 13:34:43

标签: regex c#-4.0

我如何获得价值,例如

  1. <div class="detail"> Hello </div>
  2. <div class="detail"> World </div>

         string x = " <div class="results-list clearfix">
                     <div class="detail">   Hello
                     </div> 
           </div>
           <div class="results-list clearfix">
                     <div class="detail">   World
                     </div> 
           </div>          
         ";
    
        String pattern = @"<div class=""results-list clearfix"">(?<Content>[^<]*)</div>";
    
        Regex rx = new Regex(pattern,RegexOptions.Multiline);
        Match m = rx.Match(x);
    
        while (m.Success)
        {
            string zz =  m.Groups["Content"].Value;
            m = m.NextMatch();
        } 
    

3 个答案:

答案 0 :(得分:1)

我认为这是你的问题""results-list clearfix""。当您使用文字字符串时,可以删除额外的"

答案 1 :(得分:0)

使用正则表达式进行这种解析是个坏主意。对此特定方案使用XML解析器。我建议使用LINQ to XML,即XElement.Parse(...)

不要忘记将html包装在单个根元素中。

答案 2 :(得分:0)

使用SingleLine选项尝试此模式:

string pattern = "<div\\sclass=\"results-list clearfix\">\\s*(?<Content><div[^>]*>.*?</div>)"