Да, предваряя камни, которые в меня полетят. Так делать нельзя, неправильно и вообще некузяво. Но что я буду делать, если нормальных парсеров под .NET Framework 2.0 уже net, а задача маленькая — найти все теги <a> или <img> и выдрать из них, соответственно, значение атрибутов href или src.
public List<string> ParseTags(string Tag, string Property)
{
List<string> listBuf = new List<string>();
Regex reHref = new Regex(@"(?inx)
<" + Tag + @" \s [^>]*" +
Property + @"\s* = \s*"+
@"(?<q> ['""] )"+
@"(?<url> [^""]+ )"+
@"\k<q>"+
@"[^>]* >");
foreach (Match match in reHref.Matches(HTMLPage))
{
listBuf.Add(match.Groups["url"].ToString());
}
return listBuf;
}
Это немного видоизмененное решение (добавил возможность подставлять в регулярное выражение тег и атрибут) из одной статьи на Хабре. Заметка, как обычно, от склероза.
Плюс добавлена функция выбора из найденного, уже без всяких регулярных выражений, с помощью string.Contains(<строка>).
public List<string> Select(string Pattern, List<string> inputList)
{
List<string> selectList = new List<string>();
foreach (string s in inputList)
{
if (s.Contains(Pattern))
{
selectList.Add(s);
}
}
return selectList;
}