Как проверить URL с помощью регулярных выражений в Java? - PullRequest
1 голос
/ 11 августа 2010

Мне нужно проверить, является ли URL действительным или нет. URL должен содержать несколько подкаталогов, таких как:

example.com/test/test1/example/a.html

URL должен содержать подкаталоги test, test1 и example. Как я могу проверить, действителен ли URL с помощью регулярных выражений в Java?

Ответы [ 4 ]

2 голосов
/ 11 августа 2010
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 голос
/ 11 августа 2010

Так как вы хотите делать в регулярных выражениях, как насчет этого ...

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());
0 голосов
/ 11 августа 2010

На этот вопрос вы получите ответ с помощью регулярных выражений: Регулярное выражение для соответствия URL в Java

Но вы можете использовать библиотеку Apache Commons Validators , чтобы использовать некоторые проверенные валидаторы вместо того, чтобы писать свои.

Вот библиотека: http://commons.apache.org/validator/

А вот и Javadoc для URL Validator. http://commons.apache.org/validator/apidocs/org/apache/commons/validator/UrlValidator.html

0 голосов
/ 11 августа 2010

Вы можете просто передать свой URL-адрес в качестве аргумента конструктору java.net.URL(String) и проверить, выбрасывает ли конструктор java.net.MalformedURLException.

EDIT Если, однако, вы просто хотите проверить, содержит ли данная строка заданную подстроку, используйте метод String.contains(CharSequence). Например:

String url = "example.com/test/test1/example/a.html";
if (url.contains("/test/test1/")) {
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...