Меня раздражает, что люди так быстро прыгают, не используют регулярные выражения для разбора HTML. В любом случае, вы здесь не разбираете HTML. Даже если вы используете Html Agility Pack для извлечения URL-адресов из html, вам все равно потребуется извлечь параметры imgurl
из каждой строки запроса.
Regex идеально подходит для извлечения параметров из строки запроса, и это будет делать то, что вы хотите:
string input = "your big HTML string";
MatchCollection matches = Regex.Matches(
input,
@"(?<=[?&]imgurl=)[^&#'"]*",
RegexOptions.IgnoreCase // remove this if you don't want to ignore case in "imgurl"
);
Я полностью использую Agility Pack для фактического разбора HTML, но если вы просто хотите вырезать несколько строк (которые соответствуют четко определенному шаблону) из более крупной строки, нет лучшего инструмента для работы, чем регулярное выражение. Причина плохого использования регулярных выражений для анализа HTML-тегов заключается в том, что HTML не является надежно структурированным. Строка запроса URL должна быть в определенном формате, поэтому можно использовать регулярное выражение.