Я пытаюсь не жадно разобрать теги TD. Я начинаю с чего-то вроде этого:
<TD>stuff<TD align="right">More stuff<TD align="right>Other stuff<TD>things<TD>more things
Я использую ниже как мое регулярное выражение:
Regex.Split(tempS, @"\<TD[.\s]*?\>");
Записи возвращаются, как показано ниже:
""
"stuff<TD align="right">More stuff<TD align="right>Other stuff"
"things"
"more things"
Почему он не разделяет этот первый полный результат (тот, который начинается с «stuff»)? Как настроить регулярное выражение для разделения на все экземпляры тега TD с параметрами или без них?
.
просто означает буквальную точку в классе символов[.]
, а не «любой символ». Вы можете добиться большего успеха с[^>]*
, но это сломает>
в атрибуте (что является одной из причин, почему мы часто смотрим на синтаксические анализаторы, а не на регулярные выражения для манипулирования html и xml). - person Wrikken   schedule 12.12.2012/s
), чтобы точка соответствовала всем. Однако[^>]*>
функционально эквивалентен(.|\s)*?>
и, вероятно, проще в регулярном выражении. - person Wrikken   schedule 12.12.2012