Expresión regular para buscar URL dentro de una cadena


95

¿Alguien sabe de una expresión regular que pueda usar para encontrar URL dentro de una cadena? Encontré muchas expresiones regulares en Google para determinar si una cadena completa es una URL, pero necesito poder buscar URL en una cadena completa. Por ejemplo, me gustaría poder encontrar www.google.comy http://yahoo.comen la siguiente cadena:

Hello www.google.com World http://yahoo.com

No estoy buscando URL específicas en la cadena. Estoy buscando TODAS las URL en la cadena, por eso necesito una expresión regular.


Si tiene expresiones para toda la cadena, simplemente elimine ^ y $ para que coincidan con partes de la cadena.
entonio

Respuestas:


206

Este es el que yo uso

(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?

Funciona para mí, debería funcionar para ti también.


7
No olvides escapar de las barras diagonales.
Mark

1
Es 2017 y los nombres de dominio Unicode están por todas partes. \wpueden no coincidir con los símbolos internacionales (depende del motor de expresiones regulares), es necesaria la gama en su lugar: a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF.
Michael Antipin

3
Esto está bien para fines generales, pero hay muchos casos en los que no se detecta. Esto obliga a que sus enlaces tengan un prefijo con un protocolo. Si elige ignorar los protocolos, se aceptan las terminaciones de los correos electrónicos, como es el caso de test@testing.com.
Squazz

4
no debería [\w_-]ser [\w-]? porque ya \wcoincide _. por documentos de mozilla
transang

2
Voto a favor, pero esta respuesta no funciona con lo que pide la pregunta www.yahoo.com. """(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?""".r.findAllIn("www.google.com").toList. TAMBIÉN FALTA EXPLICACIÓN para la respuesta
prayagupd

45

Supongo que ninguna expresión regular es perfecta para este uso. Encontré uno bastante sólido aquí

/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm

Algunas diferencias / ventajas en comparación con las otras publicadas aquí:

  • No , no coincide con direcciones de correo electrónico
  • Coincide con localhost: 12345
  • No detectará algo como moo.comsin httpowww

Vea aquí para ver ejemplos


4
coincide con www.e Esta no es una URL válida
Ihor Herasymchuk

La gopción no es válida en todas las implementaciones de expresiones regulares (por ejemplo, la implementación incorporada de Ruby).
Huliax

23
text = """The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
The code below catches all urls in text and returns urls in list."""

urls = re.findall('(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+', text)
print(urls)

Salida:

[
    '/programming/6038061/regular-expression-to-find-urls-within-a-string', 
    'www.google.com', 
    'facebook.com',
    'http://test.com/method?param=wasd'
]

Kotlin val urlRegex = "(? :( ?: https? | Ftp): \\ / \\ /)? [\\ w / \\ -? =%.] + \\. [\\ w / \\ - ? =%.] + "
Akshay Nandwana

Falta &parámetros en la URL. por ejemplo, http://test.com/method?param=wasd&param2=wasd2pierde param2
TrophyGeek

10

Ninguna de las soluciones proporcionadas aquí resolvió los problemas / casos de uso que tenía.

Lo que he proporcionado aquí es lo mejor que he encontrado / hecho hasta ahora. Lo actualizaré cuando encuentre nuevos casos extremos que no maneje.

\b
  #Word cannot begin with special characters
  (?<![@.,%&#-])
  #Protocols are optional, but take them with us if they are present
  (?<protocol>\w{2,10}:\/\/)?
  #Domains have to be of a length of 1 chars or greater
  ((?:\w|\&\#\d{1,5};)[.-]?)+
  #The domain ending has to be between 2 to 15 characters
  (\.([a-z]{2,15})
       #If no domain ending we want a port, only if a protocol is specified
       |(?(protocol)(?:\:\d{1,6})|(?!)))
\b
#Word cannot end with @ (made to catch emails)
(?![@])
#We accept any number of slugs, given we have a char after the slash
(\/)?
#If we have endings like ?=fds include the ending
(?:([\w\d\?\-=#:%@&.;])+(?:\/(?:([\w\d\?\-=#:%@&;.])+))*)?
#The last char cannot be one of these symbols .,?!,- exclude these
(?<![.,?!-])

1
¿Hay alguna forma de hacer esto compatible con JavaScript? Como los grupos de captura con nombre no son completamente funcionales allí, la verificación del valor del protocolo no se valida.
einord

6

Creo que este patrón de expresiones regulares maneja precisamente lo que quieres

/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/

y este es un ejemplo de fragmento para extraer URL:

// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want  /programming/6038061/regular-expression-to-find-urls-within-a-string to filter goes here.";

// Check if there is a url in the text
preg_match_all($reg_exUrl, $text, $url,$matches);
var_dump($matches);

5

Todas las respuestas anteriores no coinciden con los caracteres Unicode en la URL, por ejemplo: http://google.com?query=đức+filan+đã+search

Para la solución, este debería funcionar:

(ftp:\/\/|www\.|https?:\/\/){1}[a-zA-Z0-9u00a1-\uffff0-]{2,}\.[a-zA-Z0-9u00a1-\uffff0-]{2,}(\S*)

2
Los caracteres Unicode estaban prohibidos según el RFC 1738 en las URL ( faqs.org/rfcs/rfc1738.html ). Tendrían que estar codificados porcentualmente para cumplir con los estándares, aunque creo que puede haber cambiado más recientemente, vale la pena leerlos en w3.org/International/articles/idn-and-iri
mrswadge

@mrswadge Solo cubro los casos. No estamos seguros de si a todas las personas les importa el estándar. Gracias por tu información.
Duc Filan

Solo este funcionó perfectamente para mí, ya que tenía URL como " example.com " "www.exmaple.com" " example.com " " example.co.in " " exmaple.com/?q='me '"
Krissh

5

Si tiene que ser estricto en la selección de enlaces, optaría por:

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

Para más información, lea esto:

Un patrón de expresiones regulares preciso y liberal mejorado para URL coincidentes


2
No hagas eso. regular-expressions.info/catastrophic.html Matará tu aplicación ...
Auric

4

Encontré esto que cubre la mayoría de los enlaces de muestra, incluidas las partes del subdirectorio.

Regex es:

(?:(?:https?|ftp):\/\/|\b(?:[a-z\d]+\.))(?:(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))?\))+(?:\((?:[^\s()<>]+|(?:\(?:[^\s()<>]+\)))?\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))?

3

Si tiene el patrón de URL, debería poder buscarlo en su cadena. Sólo asegúrese de que el patrón imposible tener ^y $que marca el comienzo y final de la cadena URL. Entonces, si P es el patrón de URL, busque coincidencias para P.


Esta es la expresión regular que encontré que verifica si una cadena completa es una URL. Saqué el ^ al principio y el $ al final como dijiste y todavía no funcionó. ¿Qué estoy haciendo mal? ^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$
user758263

Podría ayudar si mostrara el idioma que está usando. De cualquier manera, asegúrese de verificar http://regexpal.com/; allí puede probar diferentes expresiones contra su cadena hasta que lo haga bien.
entonio

@ user758263 - ¿realmente necesitas una expresión regular tan compleja para la URL? Depende de las posibles URL que pueda encontrar. También vea gskinner.com/RegExr para probar regex. También tienen cientos de muestras a la derecha debajo de la Communitypestaña, incluidas las de URL
manojlds

Estoy tratando de buscar todas las URL posibles y estoy usando C ++. Gracias por los enlaces entonio y manojlds. El sitio de gskinner fue especialmente útil ya que tenía muestras.
user758263


3

Aquí una expresión regular un poco más optimizada:

(?:(?:(https?|ftp|file):\/\/|www\.|ftp\.)|([\w\-_]+(?:\.|\s*\[dot\]\s*[A-Z\-_]+)+))([A-Z\-\.,@?^=%&amp;:\/~\+#]*[A-Z\-\@?^=%&amp;\/~\+#]){2,6}?

Aquí está la prueba con datos: https://regex101.com/r/sFzzpY/6

ingrese la descripción de la imagen aquí


2

Corto y sencillo. Todavía no lo he probado en código javascript, pero parece que funcionará:

((http|ftp|https):\/\/)?(([\w.-]*)\.([\w]*))

Código en regex101.com

Vista previa del código


1
Me gustó su expresión regular porque era exactamente lo que estaba buscando: necesitaba identificar y eliminar las URL de un texto, no validarlas. Trabajado en rieles.
Dagmar

@Dagmar Me alegra escuchar eso :)
bafsar


1

Esta es una ligera mejora en / ajuste a (dependiendo de lo que necesite) la respuesta de Rajeev:

([\w\-_]+(?:(?:\.|\s*\[dot\]\s*[A-Z\-_]+)+))([A-Z\-\.,@?^=%&amp;:/~\+#]*[A-Z\-\@?^=%&amp;/~\+#]){2,6}?

Ver aquí un ejemplo de lo que hace y lo que no coincide.

Me deshice de la comprobación de "http", etc., ya que quería capturar las URL sin esto. Agregué un poco a la expresión regular para capturar algunas URL ofuscadas (es decir, donde el usuario usa [punto] en lugar de un "."). Finalmente reemplacé "\ w" con "AZ" y "{2,3}" para reducir los falsos positivos como v2.0 y "moo.0dd".

Cualquier mejora en esta bienvenida.


[a-zA-Z]{2,3}es realmente deficiente para los TLD coincidentes, consulte la lista oficial: data.iana.org/TLD/tlds-alpha-by-domain.txt . Además, sus coincidencias de expresiones regulares _.........&&&&&&no están seguras de que sea una URL válida.
Toto

Gracias por eso JE SUIS CHAELIE, ¿alguna sugerencia de mejora (especialmente para el falso positivo)?
avjaarsveld

1

Un método de trabajo probablemente demasiado simplista podría ser:

[localhost|http|https|ftp|file]+://[\w\S(\.|:|/)]+

Lo probé en Python y siempre que el análisis de cadenas contenga un espacio antes y después y ninguno en la URL (que nunca antes había visto) debería estar bien.

Aquí hay un ide en línea que lo demuestra

Sin embargo, aquí hay algunos beneficios de usarlo:

  • Reconoce file:y localhosttambién direcciones IP.
  • Lo hará nunca se coincidir sin ellos
  • No le importa los caracteres inusuales como #o -(ver url de esta publicación)

1

El uso de la expresión regular proporcionada por @JustinLevene no tenía las secuencias de escape adecuadas en las barras diagonales inversas. Se actualizó para que ahora sea correcto, y se agregó en condición para que coincida también con el protocolo FTP: coincidirá con todas las URL con o sin protocolos, y sin "www".

Código: ^((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?

Ejemplo: https://regex101.com/r/uQ9aL4/65



1

Escribí uno yo mismo:

let regex = /([\w+]+\:\/\/)?([\w\d-]+\.)*[\w-]+[\.\:]\w+([\/\?\=\&\#]?[\w-]+)*\/?/gm

Funciona en TODOS los siguientes dominios:

https://www.facebook.com
https://app-1.number123.com
http://facebook.com
ftp://facebook.com
http://localhost:3000
localhost:3000/
unitedkingdomurl.co.uk
this.is.a.url.com/its/still=going?wow
shop.facebook.org
app.number123.com
app1.number123.com
app-1.numbEr123.com
app.dashes-dash.com
www.facebook.com
facebook.com
fb.com/hello_123
fb.com/hel-lo
fb.com/hello/goodbye
fb.com/hello/goodbye?okay
fb.com/hello/goodbye?okay=alright
Hello www.google.com World http://yahoo.com
https://www.google.com.tr/admin/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
http://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
ftp://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
drive.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://www.example.pl
http://www.example.com
www.example.pl
example.com
http://blog.example.com
http://www.example.com/product
http://www.example.com/products?id=1&page=2
http://www.example.com#up
http://255.255.255.255
255.255.255.255

Puede ver cómo funciona aquí en regex101 y ajustar según sea necesario


0

Utilizo la lógica de buscar texto entre dos puntos o puntos.

la expresión regular a continuación funciona bien con Python

(?<=\.)[^}]*(?=\.)



0
(?:vnc|s3|ssh|scp|sftp|ftp|http|https)\:\/\/[\w\.]+(?:\:?\d{0,5})|(?:mailto|)\:[\w\.]+\@[\w\.]+

Si quieres una explicación de cada parte, prueba en regexr [.] Com donde obtendrás una gran explicación de cada carácter.

Esto está dividido por un "|" u "OR" porque no todos los URI utilizables tienen "//", por lo que aquí es donde puede crear una lista de esquemas o condiciones que le interesaría hacer coincidir.


0

He utilizado la clase c # Uri y funciona, bien con la dirección IP, localhost

 public static bool CheckURLIsValid(string url)
    {
        Uri returnURL;

       return (Uri.TryCreate(url, UriKind.Absolute, out returnURL)
           && (returnURL.Scheme == Uri.UriSchemeHttp || returnURL.Scheme == Uri.UriSchemeHttps));


    }

0

Me gustó la solución de Stefan Henze, pero obtendría 34,56. Es demasiado general y no he analizado html. Hay 4 anclajes para una URL;

www ,

http: \ (y co),

. seguido de letras y luego /,

o letras. y uno de estos: https://ftp.isc.org/www/survey/reports/current/bynum.txt .

Usé mucha información de este hilo. Gracias a todos.

"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"

Arriba resuelve casi todo excepto una cadena como "eurls: www.google.com, facebook.com, http: //test.com/", que devuelve como una sola cadena. Tbh idk por qué agregué Gopher, etc. Código de prueba R

if(T){
  wierdurl<-vector()
  wierdurl[1]<-"https://JP納豆.例.jp/dir1/納豆 "
  wierdurl[2]<-"xn--jp-cd2fp15c.xn--fsq.jp "
  wierdurl[3]<-"http://52.221.161.242/2018/11/23/biofourmis-collab"
  wierdurl[4]<-"https://12000.org/ "
  wierdurl[5]<-"  https://vg-1.com/?page_id=1002 "
  wierdurl[6]<-"https://3dnews.ru/822878"
  wierdurl[7]<-"The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
  Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
  The code below catches all urls in text and returns urls in list. "
  wierdurl[8]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-string
  Alsotherearesomeurls:www.google.com,facebook.com,http://test.com/method?param=wasd
  Thecodebelowcatchesallurlsintextandreturnsurlsinlist. "
  wierdurl[9]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-stringAlsotherearesomeurlsZwww.google.com,facebook.com,http://test.com/method?param=wasdThecodebelowcatchesallurlsintextandreturnsurlsinlist."
  wierdurl[10]<-"1facebook.com/1res"
  wierdurl[11]<-"1facebook.com/1res/wat.txt"
  wierdurl[12]<-"www.e "
  wierdurl[13]<-"is this the file.txt i need"
  wierdurl[14]<-"xn--jp-cd2fp15c.xn--fsq.jpinspiredby "
  wierdurl[15]<-"[xn--jp-cd2fp15c.xn--fsq.jp/inspiredby "
  wierdurl[16]<-"xnto--jpto-cd2fp15c.xnto--fsq.jpinspiredby "
  wierdurl[17]<-"fsety--fwdvg-gertu56.ffuoiw--ffwsx.3dinspiredby "
  wierdurl[18]<-"://3dnews.ru/822878 "
  wierdurl[19]<-" http://mywebsite.com/msn.co.uk "
  wierdurl[20]<-" 2.0http://www.abe.hip "
  wierdurl[21]<-"www.abe.hip"
  wierdurl[22]<-"hardware/software/data"
  regexstring<-vector()
  regexstring[2]<-"(http|ftp|https)://([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[3]<-"/(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#\\/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#\\/%=~_|$])/igm"
  regexstring[4]<-"[a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]?"
  regexstring[5]<-"((http|ftp|https)\\:\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[6]<-"((http|ftp|https):\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?"
  regexstring[7]<-"(http|ftp|https)(:\\/\\/)([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[8]<-"(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#/%=~_|$])"
  regexstring[10]<-"((http[s]?|ftp):\\/)?\\/?([^:\\/\\s]+)((\\/\\w+)*\\/)([\\w\\-\\.]+[^#?\\s]+)(.*)?(#[\\w\\-]+)?"
  regexstring[12]<-"http[s:/]+[[:alnum:]./]+"
  regexstring[9]<-"http[s:/]+[[:alnum:]./]+" #in DLpages 230
  regexstring[1]<-"[[:alnum:]-]+?[.][:alnum:]+?(?=[/ :])" #in link_graphs 50
  regexstring[13]<-"^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$"
  regexstring[14]<-"(((((http|ftp|https):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]+(?:(?:\\.[\\w_-]+)*))((\\.((org|com|net|edu|gov|mil|int)|(([:alpha:]{2})(?=[, ]))))|([\\/]([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
  regexstring[15]<-"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
    }

for(i in wierdurl){#c(7,22)
  for(c in regexstring[c(15)]) {
    print(paste(i,which(regexstring==c)))
    print(str_extract_all(i,c))
  }
}

-1

Ésta es la mejor.

NSString *urlRegex="(http|ftp|https|www|gopher|telnet|file)(://|.)([\\w_-]+(?:(?:\\.[\\w_-]+)‌​+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?";

-1

Este es el más simple. que funcionan para mí bien.

%(http|ftp|https|www)(://|\.)[A-Za-z0-9-_\.]*(\.)[a-z]*%

-1

Es simplemente simple.

Utilice este patrón: \b((ftp|https?)://)?([\w-\.]+\.(com|net|org|gov|mil|int|edu|info|me)|(\d+\.\d+\.\d+\.\d+))(:\d+)?(\/[\w-\/]*(\?\w*(=\w+)*[&\w-=]*)*(#[\w-]+)*)?

Coincide con cualquier enlace que contenga:

Protocolos permitidos: http, https y ftp

Dominios permitidos: * .com, * .net, * .org, * .gov, * .mil, * .int, * .edu, * .info y * .me O IP

Puertos permitidos: verdadero

Parámetros permitidos: verdadero

Hashes permitidos: verdadero

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.