una recortar longitud extraer entero ejemplos definicion convertir caracteres cadena c# regex string hyperlink

recortar - La forma más fácil de convertir una URL a un hipervínculo en una cadena C#?



string[] c# ejemplos (5)

/ animar a los RedWolves

from: this.replace (/ [A-Za-z] +: // [A-Za-z0-9- ] +. [A-Za-z0-9- :% & /? /.=] + / , función (m) {...

ver: / [A-Za-z] +: // [A-Za-z0-9- ] +. [A-Za-z0-9- :% & /? /.=] + /

Existe el código para las direcciones "anyprotocol": // "anysubdomain / domain". "Anydomainextension and address",

y es un ejemplo perfecto para otros usos de la manipulación de cuerdas. puede cortar y cortar a voluntad con .replace e inserte "a href" adecuado donde sea necesario.

Utilicé jQuery para cambiar los atributos de estos enlaces a "target = _blank" fácilmente en mi lógica de carga de contenido, aunque el método .link no permite personalizarlos.

Personalmente, me encanta usar un método personalizado para el objeto de cadena para el filtrado de cadenas instantáneas (la declaración String.prototype.linkify), pero no estoy seguro de cómo funcionaría en un entorno a gran escala en el que tiene que organizar más de 10 funciones personalizadas tipo enlace. Creo que definitivamente deberías hacer algo más con tu estructura de código en ese punto.

Tal vez un veterinario tropiece aquí y nos ilumine.

Estoy consumiendo la API de Twitter y quiero convertir todas las URL a hipervínculos.

¿Cuál es la forma más efectiva que se te ocurrió para hacer esto?

de

string myString = "This is my tweet check it out http://tinyurl.com/blah";

a

This is my tweet check it out <a href="http://tinyurl.com/blah">http://tinyurl.com/>blah</a>


Este es realmente un problema feo. Las URL pueden contener (y terminar con) signos de puntuación, por lo que puede ser difícil determinar dónde termina realmente una URL, cuando está incorporada en el texto normal. Por ejemplo:

http://example.com/.

es una URL válida, pero podría ser tan fácilmente el final de una oración:

I buy all my witty T-shirts from http://example.com/.

No puede simplemente analizar hasta que se encuentre un espacio, porque entonces mantendrá el período como parte de la URL. Tampoco puede simplemente analizar hasta que se encuentre un período o espacio, porque los períodos son extremadamente comunes en las URL.

Sí, Regex es tu amigo aquí, pero construir la expresión regular apropiada es la parte difícil.

Mira esto también: Expansión de URL con Regex en .NET .


Hice exactamente lo mismo con jquery consumiendo la API JSON aquí está la función linkify:

String.prototype.linkify = function() { return this.replace(/[A-Za-z]+:////[A-Za-z0-9-_]+/.[A-Za-z0-9-_:%&/?//.=]+/, function(m) { return m.link(m); }); };


Las expresiones regulares son probablemente su amigo para este tipo de tarea:

Regex r = new Regex(@"(https?://[^/s]+)"); myString = r.Replace(myString, "<a href=/"$1/">$1</a>");

La expresión regular para las URL coincidentes puede necesitar un poco de trabajo.


Puede agregar algo más de control sobre esto usando la función de delegado de MatchEvaluator con expresión regular: supongamos que tengo esta cadena:

find more on http://www..com

ahora prueba este código

private void ModifyString() { string input = "find more on http://www.authorcode.com "; Regex regx = new Regex(@"/b((http|https|ftp|mailto)://)?(www.)+[/w-]+(/[/w- ./?%&=]*)?"); string result = regx.Replace(input, new MatchEvaluator(ReplaceURl)); } static string ReplaceURl(Match m) { string x = m.ToString(); x = "< a href=/"" + x + "/">" + x + "</a>"; return x; }