Expressão regular para obter o SRC de imagens em c #

Estou procurando uma expressão regular para isolar o valor src de um img. (Eu sei que esta não é a melhor maneira de fazer isso, mas é o que tenho que fazer neste caso)

Eu tenho uma string que contém código html simples, algum texto e uma imagem. Preciso obter o valor do atributo src dessa string. Eu consegui apenas isolar a tag inteira até agora.

string matchString = Regex.Match(original_text, @"(]+)>)").Value; 

 string matchString = Regex.Match(original_text, "", RegexOptions.IgnoreCase).Groups[1].Value; 

Eu sei que você diz que tem que usar o regex, mas se possível, eu daria a chance a este projeto de código aberto: HtmlAgilityPack

É realmente fácil de usar, eu acabei de descobrir e isso me ajudou muito, já que eu estava fazendo uma análise html mais pesada. Basicamente, permite usar o XPATHS para obter seus elementos.

Sua página de exemplo é um pouco desatualizada, mas a API é realmente fácil de entender, e se você estiver um pouco familiarizado com o xpaths, você terá uma noção disso agora

O código para sua consulta seria algo como isto: (código não compilado)

  List imgScrs = new List(); HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(htmlText);//or doc.Load(htmlFileStream) var nodes = doc.DocumentNode.SelectNodes(@"//img[@src]"); s foreach (var img in nodes) { HtmlAttribute att = img["src"]; imgScrs.Add(att.Value) } 

Eu tentei o que Francisco Noriega sugeriu, mas parece que a API do HtmlAgilityPack foi alterada. Aqui está como eu resolvi isso:

  List images = new List(); WebClient client = new WebClient(); string site = "http://www.mysite.com"; var htmlText = client.DownloadString(site); var htmlDoc = new HtmlDocument() { OptionFixNestedTags = true, OptionAutoCloseOnEnd = true }; htmlDoc.LoadHtml(htmlText); foreach (HtmlNode img in htmlDoc.DocumentNode.SelectNodes("//img")) { HtmlAttribute att = img.Attributes["src"]; images.Add(att.Value); } 

O regex que você quer deve estar na linha de:

 () 

Espero que isto ajude.

Isso deve capturar todas as tags img e apenas a parte src, não importa onde esteja localizada (antes ou depois da aula, etc.) e suporta html / xhtml: D

  

você também pode usar um olhar para trás para fazer isso sem precisar retirar um grupo

 (?<= 

lembre-se de fugir das citações, se necessário

Isso é o que eu uso para obter as tags de strings:

 ]*> 

Aqui está o que eu uso:

 (?:(?!\1).)*)\1|(?[^\s>]+))[^>]*?> 

A parte boa é que corresponde a qualquer um dos abaixo:

    

E também pode corresponder a alguns cenários inesperados, como atributos extras, por exemplo: