我需要检查网址是否有效。该URL应包含一些子目录,如:
example.com/test/test1/example/a.html
网址应包含子目录test
,test1
和example
。如何使用Java中的regex检查URL是否有效?
答案 0 :(得分:2)
String url = "example.com/test/test1/example/a.html";
List<String> parts = Arrays.asList(url.split("/"));
return (parts.contains("test") && parts.contains("test1") && parts.contains("example"));
答案 1 :(得分:1)
既然你想在正则表达式中做,那怎么样......
Pattern p = Pattern.compile("example\\.com/test/test1/example/[\\w\\W]*");
System.out.println("OK: " + p.matcher("example.com/test/test1/example/a.html").find());
System.out.println("KO: " + p.matcher("example.com/test/test2/example/a.html").find());
答案 2 :(得分:0)
您只需将您的URL作为参数传递给java.net.URL(String)
构造函数,并检查构造函数是否抛出java.net.MalformedURLException
。
编辑但是,如果您只是想检查给定字符串是否包含给定的子字符串,请使用String.contains(CharSequence)
方法。例如:
String url = "example.com/test/test1/example/a.html";
if (url.contains("/test/test1/")) {
// ...
}
答案 3 :(得分:0)
这个问题在这里使用正则表达式回答: Regular expression to match URLs in Java
但您可以使用库 Apache Commons Validators 来使用一些经过测试的验证器来编写自己的验证器。
这是图书馆: http://commons.apache.org/validator/
这里是URL Validator的javadoc。 http://commons.apache.org/validator/apidocs/org/apache/commons/validator/UrlValidator.html