У меня есть вопрос, касающийся регулярных выражений .NET и того, как он определяет совпадения.
Я пишу:
var regex = new Regex("<tr><td>1</td><td>(.+)</td><td>(.+)</td>");
if (regex.IsMatch(str))
{
var groups = regex.Match(str).Groups;
var matches = new List<string>();
for (int i = 1; i < groups.Count; i++)
matches.Add(groups[i].Value);
return matches;
}
Я хочу получить содержимое двух следующих тегов. Вместо этого он возвращает:
[0]: Cell 1</td><td>Cell 2</td>...
[1]: Last row of the table
Почему первое совпадение занимает , а остальная часть строки вместо остановки на ?