Я знаю, что это было задано в некоторой степени, но пока я не смог увидеть рабочий пример решения. Я знаю, что для анализа строк HTML существует Html Agility Pack, но я не хочу его загружать/устанавливать. Я получаю содержимое веб-страницы с помощьюC# Regex, чтобы получить строку между двумя строками с подстановочной строкой между ними?
string html = client.DownloadString("http://yoursite.com/page.html");
У меня есть метки, которые имеют класс с ними, но некоторые из этих тегов также имеют свой собственный идентификатор, или стиль, и т.д., например:
<td>I Dont want this</td>
<td class="myClass">I want this</td>
<td class="myClass" id="myID">I want this</td>
<td style="border-top-width: 0px; class="myClass">I want this</td>
Я попытался
<td>(.*?)</td>
Но она возвращает теги без какого-либо класса, идентификатор и т.д.
Я попытался
<td class="myClass"[^>]*>(.*?)</td>
Но он возвращает только второй и третий значения <td>
, но не четвертый. Как я могу добавить шаблон для возврата <td>
с myClass
, но игнорирует все, что приходит до или после, как id
или style
?
Я вынужден указать вам на [этот довольно известный вопрос] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Jonesopolis
Это часть HTML будет ВСЕГДА иметь тот же формат, который задан вопросом. Не будет никаких ошибок или перегрузок, которые браузеры автозаполняют и автозаменяют. – KingsInnerSoul
Просто добавьте еще один '[^>] *' перед атрибутом 'class'. Если ваш HTML такой же последовательный, как вы говорите, этого должно быть достаточно. –