Получение значения группы в Regex

В С# у меня есть следующий шаблон для моего регулярного выражения:

string pattern = "<div class=\"alt\" title=\"[\\w\\s]+\"><strong>([\\w\\s]+)</strong></div>";

Я создаю объект Match следующим образом:

status = Regex.Match(html, pattern);

Однако, если я вызываю .groups() для статуса, я получаю пустой текст, даже если есть совпадение. Правильно ли я извлекаю группу?

Изменить: вот часть HTML,

          <tr>
            <td>
                    <div class="alt" title="Released to Manufacturing">
                            <strong>Released to Manufacturing</strong>

person Shannon Rothe    schedule 23.10.2013    source источник
comment
Как выглядит ваш html?   -  person Soner Gönül    schedule 23.10.2013


Ответы (2)


string strRegex = @"<div class=""alt"" title=""[\w\s]+""><strong>([\w\s]+)</strong></div>";
RegexOptions myRegexOptions = RegexOptions.IgnoreCase | RegexOptions.Multiline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"<div class=""alt"" title=""released""><strong>Released</strong></div>";

foreach (Match myMatch in myRegex.Matches(strTargetString))
{
    if (myMatch.Success)
    {
        var value = myMatch.Groups[1].Value;
    }
}

Проверено с помощью RegexHero

person RePierre    schedule 23.10.2013
comment
Я думаю, что проблема для меня в том, что ‹div› находится внутри большого HTML-файла, а регулярное выражение не работает из-за окружающего HTML или чего-то еще. - person Shannon Rothe; 23.10.2013

Regex не используется для разбора html.

Используйте синтаксический анализатор HTML, например Htmlagilitypack.

   HtmlDocument doc = new HtmlDocument();
   doc.Load(yourStream);
   var altElementValues= doc.DocumentNode
                            .SelectNodes("//div[@class='alt']/strong")
                            .Select(x=>x.InnerText);
person Anirudha    schedule 23.10.2013
comment
Думаю, это правильный подход. К сожалению, ничего не захватывает! Я не уверен, в чем проблема :( Не могли бы вы объяснить, как работает параметр SelectNodes? - person Shannon Rothe; 23.10.2013
comment
@Shazer2 //div[@class='alt'] - это xpath, который выберет все узлы div, имеющие атрибут class со значением alt. - person Anirudha; 23.10.2013
comment
Все равно ничего не извлекает. :( - person Shannon Rothe; 23.10.2013
comment
давайте продолжим это обсуждение в чате - person Shannon Rothe; 23.10.2013