Что не так с моим регулярным выражением? - PullRequest
2 голосов
/ 08 февраля 2011

Как мне получить значение, например:

  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 ]

1 голос
/ 08 февраля 2011

Я думаю, что это ваша проблема ""results-list clearfix"". Поскольку вы используете буквенную строку, вы можете удалить лишние ".

0 голосов
/ 08 февраля 2011

Попробуйте этот шаблон с параметром SingleLine:

string pattern = "<div\\sclass=\"results-list clearfix\">\\s*(?<Content><div[^>]*>.*?</div>)"
0 голосов
/ 08 февраля 2011

Неправильно использовать регулярные выражения для такого анализа.Используйте синтаксический анализатор XML для этого конкретного сценария.Я предлагаю LINQ to XML, то есть XElement.Parse(...)

Не забудьте обернуть вас html в один корневой элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...