Categorias

Transformando uma URL em Hyperlink dentro de um texto

As expressões regulares são capazes de realizar tarefas muito poderosas, mas desconhecidas por muitos.

Por exemplo: formulários de dados são validados para impedir que o usuário entre com instruções HTML no formulário, o que seria uma tentativa de invasão conhecida como script injection.

Mas digamos que o usuário entre com URLs nestes formulários. Você pode desejar que as URLs sejam exibidas com links, mas nem por isso quer que seu usuário digite tags HTML.

Se for só um campo URL, é muito fácil. Mas e se forem URLs digitados no meio de um longo texto e você desejar que, ao exibir o texto, todas as URLs do texto apareçam como links ?

Neste ponto entram as expressões regulares : Elas são capazes de identificar um padrão no meio de um grande texto (as URLs tem um formato padrão) e a partir deste padrão fazer inclusive um replace, mas não necessariamente um replace comum, mas um replace baseado no padrão que foi identificado.

Não esqueça de fazer um imports/using para o namespace System.Text.RegularExpressions. Observe também que dentro do colchete existe um espaço.

Veja como ficaria uma rotina para transformar, dentro de um texto, todas as URLs para hyperlinks :

Fonte: Búfalo Info (https://www.bufaloinfo.com.br/dicas.asp?cod=893).

C# 

public string ConvertURLsToHyperlinks(string sInput) 
{ 
return Regex.Replace(sInput, @"(bhttps://[^ ]+b)", @"$0"); 
} 

VB.NET : 

public function ConvertURLsToHyperlinks(sInput as string) as string 

return Regex.Replace(sInput,"(bhttps://[^ ]+b)","$0") 

end function