2013-12-24 6 views
0

Я хочу извлечь значения между TDs из этой части текста (html разметка).Regex для извлечения содержимого TD

<tr id="pair_169"> 
    <td id="cr_12cl_last169">16,294.61</td> 
    <td>16,294.61</td><td>16,318.11</td> 
    <td class="">16,225.25</td> 
    <td class="bold greenFont">73.47</td> 
    <td class="bold greenFont">0.45%</td> 
    <td id="cr_12cl_date169">23/12</td> 
</tr> 

что было бы лучшим шаблоном Regex?

+0

вы можете попробовать использовать html-парсер, см. [Здесь] (http://stackoverflow.com/questions/56107/what-is-the-best-way-to-parse-html-in-c) и [здесь ] (http://stackoverflow.com/questions/6063203/parsing-html-with-c-net) – Runcorn

ответ

1

Вы можете использовать следующий код:

const string pattern = @"<td\b[^>]*?>(?<V>[\s\S]*?)</\s*td>"; 
foreach (Match match in Regex.Matches(inputText, pattern, RegexOptions.IgnoreCase)) 
{ 
    string value = match.Groups["V"].Value; 

    Console.WriteLine(value); 
} 
0

Попробуйте это регулярное выражение

<td>(.*?)</td> 

Или это, но он используется, чтобы соответствовать точно TD только с TR

(?<1><TR[^>]*>\s*<td.*?</tr>) 
1

I знаю, что это старая нить, но этот помог мне в аналогичной ситуации

<td\b[^>]class=".*?>(.*?)<\/td> 
Смежные вопросы