Если у вас есть строка с URL адресом и вам нужно узнать его составляющие (например, протокол или порт), это можно сделать с помощью регулярного выражения:
Pattern pattern = Pattern.compile("((http[s]?|ftp)://)([^:^/]*)(:(\\d*))?(.*)?");
Исходный код
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexUrlElements { public static void main(String[] args) { Pattern pattern = Pattern.compile("((http[s]?|ftp)://)([^:^/]*)(:(\\d*))?(.*)?"); Matcher matcher = pattern.matcher("http://java-lessons.ru:80/regex/"); if (matcher.find()) { String protocol = matcher.group(2); String domain = matcher.group(3); String port = matcher.group(5); String uri = matcher.group(6); System.out.println("Protocol: " + protocol); System.out.println("Domain: " + domain); System.out.println("Port: " + port); System.out.println("URI: " + uri); } } }
Как узнать протокол, домен, порт из URL с помощью регулярного выражения