Я пытаюсь проанализировать этот html-код:
<tr>
<td>sdafsadf</td>
<td>12121</td>
<td>sdafasdf</td>
<td>32222</td>
<td>99999</td>
</tr>
и получить второй <td> the <td>12121</td>
ТОЛЬКО, я нашел эту ссылку: поддержка\K в regex и.NET не поддерживает escape-последовательность \K
, я делаю REGEX:
(?s)(^(?:(.*?)(\K<td)){2})(.*?</td>)
и хорошо работать в http://www.regexr.com/, пожалуйста, помогите мне использовать этот REGEX или аналогичный в.NET.
Из-за этого я схожу с ума и устал
С уважением,
Я бы использовал библиотеку парсера HTML, например: http://htmlagilitypack.codeplex.com/
Но просто на основе вашего фрагмента, здесь один из способов:
var str = @"
<tr>
<td>sdafsadf</td>
<td>12121</td>
<td>66666</td>
<td>32222</td>
<td>99999</td>
</tr>";
var re = new Regex(@"(<td>([^<]+)</td>)", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Console.WriteLine(re.Matches(str)[1].Groups[2].Value);
Console.WriteLine(re.Matches(str)[2].Groups[2].Value);
(?s)(^(?:(.*?)(\K<td)){2})(.*?</td>)
вернуть ТОЛЬКО ОДИН матч. Мне нужно это, REGEX возвращает только одну группу и одно совпадение, но без использования \ K в .NET