如何使用正则表达式在Java中验证URL?

11

我希望验证以 http/https/www/ftp 开头并检查 /\ 斜杠,以及检查 URL 结尾是否包含 .com,.org 等内容的 URL 是否有效,是否有正则表达式用于 URL 验证?


1
为什么不尝试建立一个URL并连接它呢?这是最好的测试。 - Andrew Thompson
4
重复?https://dev59.com/NHVC5IYBdhLWcg3w21Iq 该链接是一个关于如何使用正则表达式检查字符串是否为有效URL的问题。 - Alpay
1
请参考此链接:[Java中匹配URL的正则表达式][1]希望对您有所帮助。 [1]: https://dev59.com/P3VC5IYBdhLWcg3w2lGI - Bhavesh Shah
现有的正则表达式不适合我,这就是为什么我在这里询问的原因。 - psisodia
2个回答

17

这个有效:

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+&@#/%=~_|]";

顺便提一下,在谷歌上搜索一下,你自己就能找到解决方案。


3
如果我写www.abc.com,它不会检查www。 - psisodia
2
psisodia: 在URL地址中,“www”不是必需的。 - Honza
@Stefan Beike:它应该检查192.168.67.90/mysite/page1.html的URL吗? - user3145373 ツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接