2013-03-20 72 views
11

我想验证以http/https/www/ftp开头的网址,并检查/\斜线,并在URL末尾使用正则表达式检查.com.org等。有没有用于URL验证的正则表达式patttern?如何使用正则表达式在Java中验证URL?

+1

为什么不尝试建立一个['URL'(http://docs.oracle.com/javase/7/docs/api/java/net/URL。 HTML)并连接到它?最好的测试。 – 2013-03-20 08:46:38

+4

重复? [http://stackoverflow.com/questions/161738/what-is-the-best-regular-expression-to-check-if-a-string-is-a-valid-url](http://stackoverflow。问题/ 161738/what-is-best-regular-expression-to-check-if-a-string-is-a-valid-url) – Alpay 2013-03-20 08:47:20

+1

请参考此链接: [Regular expresion to match在Java中的URL] [1] 希望它可以帮助你。 [1]:http://stackoverflow.com/questions/163360/regular-expresion-to-match-urls-in-java – 2013-03-20 08:52:18

回答

14

这工作:

Pattern p = Pattern.compile("(@)?(href=')?(HREF=')?(HREF=\")?(href=\")?(http://)?[a-zA-Z_0-9\\-]+(\\.\\w[a-zA-Z_0-9\\-]+)+(/[#&\\n\\-=?\\+\\%/\\.\\w]+)?"); 

    Matcher m = p.matcher("your url here"); 
8

我使用下面的代码为

String lRegex = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"; 

BTW一个在谷歌搜索,你会发现自己的解决方案。

+3

它不是检查www如果我写www.abc.com – psisodia 2013-03-20 09:25:32

+2

psisodia:“WWW”是不必要的URL地址 – Honza 2013-11-23 17:18:30

+0

@Stefan贝克:它会检查'192.168.67.90/mysite/page1.html'网址? – 2014-04-25 07:08:14