Я создаю приложение Facebook, которое собирает URL-адреса из различных источников в учетной записи пользователя Facebook - например, лайки пользователя.
Проблема, с которой я столкнулся, состоит в том, что во многих записях Facebook есть строка, котораяне являются URL-адресами в их полях "сайт" и "ссылка".Facebook не проверяет пользовательский ввод, поэтому эти поля могут по существу содержать любую строку.
Я хочу иметь возможность обрабатывать строки в этих полях таким образом, чтобы URL-адреса, такие как "http://google.com"
, "https://www.bankofamerica.com"
, "http://www.nytimes.com/2011/06/13/us/13fbi.html?_r=1&hp"
,"bit.ly"
, "www.pbs.org"
все приняты.
И все строки типа "here is a random string of text the user entered"
, "here'\s ano!!! #%#$^ther weird random string"
все отклонены.
Мне кажется, единственный способ быть "уверенным"«URL-адрес - это попытка разрешить его, но я считаю, что это будет чрезмерно ресурсоемким.
Может кто-нибудь придумать умный способ регулярного выражения или иным образом проанализировать эти строки так, чтобы« много »URL-адресовправильно пойман - 80%?95% 99,995% URL-адресов?
Спасибо!
РЕДАКТИРОВАТЬ: К вашему сведению, я занимаюсь разработкой на Python.Но решение, не зависящее от языка, также прекрасно.