Sapete come se andate su facebook.com e inserite un URL nell'area di aggiornamento dello stato verrà automaticamente rilevato e Facebook mostrerà una piccola istantanea di dati da quell'URL/link? A Facebook non interessa nemmeno se inserisci un URL con o senza un protocollo come http://
.Come funziona l'algoritmo di corrispondenza URL di Facebook?
Sto cercando di replicare questo comportamento. In questo momento ho questa espressione regolare:
((?:https?:\/\/)?)((?:[a-zA-Z0-9\-]+\.)+(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2})(?:[a-z0-9\._\/~%\-\+&\#\?!=\(\)@]*)?(?:#?(?:[w]+)?)?)
E lo uso per abbinare gli URL inseriti in una textarea. Tuttavia, ha falsi positivi; corrisponderà a document.write(foo)
che chiaramente non è un URL.
Facebook non sembra avere questo problema. Infatti, posso digitare "yahoo.com" nella textarea di Facebook e lo riconoscerà come un URL. Ma se digito "esempio.com" non lo riconoscerà. Quindi, questo significa che Facebook deve fare qualcosa di più della semplice corrispondenza di espressioni regolari. O mi sbaglio di questo?
In conclusione, voglio sapere cosa sta facendo Facebook e voglio sapere come posso replicarlo. Qualsiasi idea, suggerimento o soluzione è molto apprezzata.
Grazie per la lettura.
Questa domanda sembra essere off-topic perché riguarda i dettagli di implementazione di un servizio Web closed-source. –