我正在构建一个 Facebook 应用程序,它从用户的 Facebook 帐户中的各种来源获取 URL - 例如,用户的喜欢。
我遇到的一个问题是,许多 Facebook 条目的“网站”和“链接”字段中的字符串不是 URL。Facebook 不检查用户输入,因此这些字段基本上可以包含任何字符串。
我希望能够处理这些字段中的字符串,以便像"http://google.com"
, "https://www.bankofamerica.com"
, "http://www.nytimes.com/2011/06/13/us/13fbi.html?_r=1&hp"
, "bit.ly"
,之类的 URL"www.pbs.org"
都被接受。
"here is a random string of text the user entered"
并且所有像,这样的字符串"here'\s ano!!! #%#$^ther weird random string"
都被拒绝。
在我看来,“确定”一个 URL 的唯一方法是尝试解析它,但我相信这将是资源密集型的。
任何人都可以想出聪明的方法来正则表达式或以其他方式分析这些字符串,以便正确捕获“很多”URLS--80%?95% 99.995% 的 URL?
谢谢!
编辑:仅供参考,我正在用 Python 开发。但是与语言无关的解决方案也很棒。