Espressione regolare per trovare URL all'interno di una stringa


95

Qualcuno sa di un'espressione regolare che potrei usare per trovare URL all'interno di una stringa? Ho trovato molte espressioni regolari su Google per determinare se un'intera stringa è un URL, ma devo essere in grado di cercare un'intera stringa per gli URL. Ad esempio, vorrei essere in grado di trovare www.google.come http://yahoo.comnella seguente stringa:

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

Non sto cercando URL specifici nella stringa. Sto cercando TUTTI gli URL nella stringa, motivo per cui ho bisogno di un'espressione regolare.


Se hai espressioni per l'intera stringa, elimina ^ e $ per farle corrispondere a parti della stringa.
entonio

Risposte:


206

Questo è quello che uso

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

Funziona per me, dovrebbe funzionare anche per te.


7
Non dimenticare di sfuggire alle barre in avanti.
Mark

1
È il 2017 e i nomi di dominio Unicode sono ovunque. \wpotrebbe non corrispondere i simboli internazionali (a seconda del motore regex), la gamma è necessaria invece: a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF.
Michael Antipin

3
Questo va bene per scopi generali, ma ci sono molti casi che non cattura. Ciò impone che i tuoi collegamenti siano preceduti da un protocollo. Se scegli di ignorare i protocolli, le terminazioni delle email vengono accettate come nel caso di test@testing.com.
Squazz

4
non dovrebbe [\w_-]essere [\w-]? perché \wcorrisponde _già. per mozilla docs
transang

2
Votato ma Questa risposta non funziona come la domanda sta chiedendo www.yahoo.com. """(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?""".r.findAllIn("www.google.com").toList. INOLTRE
MANCA LA

45

Immagino che nessuna regex sia perfetta per questo uso. Ne ho trovato uno abbastanza solido qui

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

Alcune differenze / vantaggi rispetto agli altri postati qui:

  • Essa non corrisponde indirizzi e-mail
  • Corrisponde a localhost: 12345
  • Non rileverà qualcosa come moo.comsenza httpowww

Vedi qui per esempi


4
corrisponde a www.e URL non valido
Ihor Herasymchuk

L' gopzione non è valida in tutte le implementazioni di espressioni regolari (es. Implementazione incorporata di 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)

Produzione:

[
    '/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,

Mancano i &parametri nell'URL. eg http://test.com/method?param=wasd&param2=wasd2manca param2
TrophyGeek

10

Nessuna delle soluzioni fornite qui ha risolto i problemi / casi d'uso che avevo.

Quello che ho fornito qui è il migliore che ho trovato / realizzato finora. Lo aggiornerò quando trovo nuovi casi limite che non gestisce.

\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
C'è un modo per rendere questo javascript friendly? Poiché i gruppi di acquisizione denominati non sono completamente funzionali lì, quindi il controllo del valore del protocollo non viene convalidato.
einord

6

Penso che questo pattern regex gestisca esattamente quello che vuoi

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

e questo è un esempio di snippet per estrarre gli 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

Tutte le risposte precedenti non corrispondono per i caratteri Unicode nell'URL, ad esempio: http://google.com?query=đức+filan+đã+search

Per la soluzione, questo dovrebbe funzionare:

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

2
I caratteri Unicode erano vietati secondo la RFC 1738 sugli URL ( faqs.org/rfcs/rfc1738.html ). Dovrebbero essere codificati in percentuale per essere conformi agli standard - anche se penso che potrebbe essere cambiato più di recente - vale la pena leggere w3.org/International/articles/idn-and-iri
mrswadge

@ mrswadge Mi occupo solo dei casi. Non siamo sicuri che tutte le persone si preoccupino dello standard. Grazie per le tue informazioni.
Duc Filan

Solo questo ha funzionato perfettamente per me con URL come " example.com " "www.exmaple.com" " example.com " " example.co.in " " exmaple.com/?q='me '"
Krissh

5

Se devi essere rigoroso nella selezione dei collegamenti, sceglierei:

(?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`!()\[\]{};:'".,<>?«»“”‘’]))

Per maggiori informazioni, leggi questo:

Un pattern Regex liberale e accurato migliorato per la corrispondenza degli URL



4

Ho trovato questo che copre la maggior parte dei link di esempio, comprese le parti di sottodirectory.

Regex è:

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

3

Se hai il pattern URL, dovresti essere in grado di cercarlo nella tua stringa. Assicurati solo che il pattern non abbia ^e $contrassegni l'inizio e la fine della stringa dell'URL. Quindi, se P è il pattern per l'URL, cerca corrispondenze per P.


Questa è la regex che ho trovato che verifica se un'intera stringa è un URL. Ho tolto il ^ all'inizio e il $ alla fine come hai detto tu e ancora non ha funzionato. Che cosa sto facendo di sbagliato? ^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$
user758263

Potrebbe essere utile mostrare la lingua che stai utilizzando. In ogni caso, assicurati di controllare http://regexpal.com/; lì puoi testare espressioni diverse sulla tua stringa finché non lo ottieni correttamente.
entonio

@ user758263 - hai davvero bisogno di un'espressione regolare così complessa per l'URL? Dipende dai possibili URL che potresti effettivamente trovare. Vedi anche gskinner.com/RegExr per provare regex. Hanno anche centinaia di campioni sulla destra sotto la Communityscheda, inclusi quelli per gli URL
manojlds

Sto cercando di cercare tutti i possibili URL e sto usando C ++. Grazie per i link entonio e manojlds. Il sito gskinner è stato particolarmente utile poiché aveva dei campioni.
user758263



2

Breve e semplice. Non ho ancora testato il codice javascript ma sembra che funzionerà:

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

Codice su regex101.com

Anteprima del codice


1
Mi è piaciuta la tua regex perché era esattamente quello che stavo cercando: avevo bisogno di identificare e rimuovere gli URL da un testo, non di convalidarli. Lavorato in rotaie.
Dagmar

@Dagmar, sono felice di sentirlo :)
bafsar


1

Questo è un leggero miglioramento / adattamento alla (a seconda di ciò di cui hai bisogno) la risposta di Rajeev:

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

Vedi qui per un esempio di cosa fa e cosa non corrisponde.

Mi sono sbarazzato del controllo per "http" ecc perché volevo catturare URL senza questo. Ho aggiunto leggermente alla regex per catturare alcuni URL offuscati (cioè dove l'utente usa [punto] invece di un "."). Infine ho sostituito "\ w" con "AZ" a e "{2,3}" per ridurre i falsi positivi come v2.0 e "moo.0dd".

Qualsiasi miglioramento su questo benvenuto.


[a-zA-Z]{2,3}è davvero scarso per la corrispondenza con TLD, vedere l'elenco ufficiale: data.iana.org/TLD/tlds-alpha-by-domain.txt . Anche la tua regex corrisponde _.........&&&&&&non è sicuro che sia un URL valido.
Toto

Grazie per questo JE SUIS CHAELIE, qualche suggerimento di miglioramento (soprattutto per il falso positivo)?
avjaarsveld

1

Un metodo di lavoro probabilmente troppo semplicistico, ma potrebbe essere:

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

L'ho testato su Python e fintanto che l'analisi della stringa contiene uno spazio prima e dopo e nessuno nell'URL (che non ho mai visto prima) dovrebbe andare bene.

Ecco un ide online che lo dimostra

Tuttavia, ecco alcuni vantaggi dell'utilizzo:

  • Riconosce file:e localhostcosì come gli indirizzi IP
  • Non potrà mai eguagliare senza di loro
  • Non importa caratteri insoliti come #o -(vedi l'URL di questo post)

1

L'uso della regex fornita da @JustinLevene non aveva le sequenze di escape appropriate sulle barre rovesciate. Aggiornato per essere corretto e aggiunto in modo da corrispondere anche al protocollo FTP: corrisponderà a tutti gli URL con o senza protocolli e senza "www".

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

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



1

Ne ho scritto uno io stesso:

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

Funziona su TUTTI i seguenti domini:

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

Puoi vedere come si comporta qui su regex101 e regolare secondo necessità


0

Uso la logica di trovare il testo tra due punti o punti

la regex sotto funziona bene con python

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



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

Se vuoi una spiegazione di ogni parte, prova in regexr [.] Com dove otterrai un'ottima spiegazione di ogni carattere.

Questo è diviso da un "|" o "OR" perché non tutti gli URI utilizzabili hanno "//", quindi è qui che puoi creare un elenco di schemi o condizioni che ti interessano abbinare.


0

Ho utilizzato la classe c # Uri e funziona bene con l'indirizzo 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

Mi è piaciuta la soluzione di Stefan Henze, ma avrebbe raccolto 34,56. È troppo generale e ho unparsed html. Ci sono 4 ancore per un URL;

www,

http: \ (e co),

. seguito da lettere e poi /,

o lettere. e uno di questi: https://ftp.isc.org/www/survey/reports/current/bynum.txt .

Ho usato molte informazioni da questo thread. Grazie a tutti.

"(((((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--)))"

Sopra risolve quasi tutto tranne una stringa come "eurls: www.google.com, facebook.com, http: //test.com/", che restituisce come una singola stringa. Tbh idk perché ho aggiunto gopher ecc. Codice R di prova

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

Questo è il migliore.

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

-1

Questa è la più semplice. che funzionano bene per me.

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

-1

È semplicemente semplice.

Usa questo modello: \b((ftp|https?)://)?([\w-\.]+\.(com|net|org|gov|mil|int|edu|info|me)|(\d+\.\d+\.\d+\.\d+))(:\d+)?(\/[\w-\/]*(\?\w*(=\w+)*[&\w-=]*)*(#[\w-]+)*)?

Corrisponde a qualsiasi collegamento contiene:

Protocolli consentiti: http, https e ftp

Domini consentiti: * .com, * .net, * .org, * .gov, * .mil, * .int, * .edu, * .info e * .me OPPURE IP

Porte consentite: vero

Parametri consentiti: true

Hash consentiti: vero

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.