2 回答

TA贡献1836条经验 获得超4个赞
使用java.net.URL类进行解析
URL url = new URL("https://google.com:443/search");
System.out.println(url.getProtocol()); // https
System.out.println(url.getHost()); // google.com
System.out.println(url.getPort()); // 443

TA贡献1856条经验 获得超17个赞
有什么特别的理由在你的情况下使用正则表达式吗?如果不是,您应该使用URL来解析字符串。
URL url = new URL("http://hq.dev.test.domain:8080/ip/CreateRegex");
System.out.println("[Protocol]=" + url.getProtocol());
System.out.println("[Hostname]=" + url.getHost());
System.out.println("[Port]=" + url.getPort());
为了完整起见,您将如何使用正则表达式进行处理:
Pattern regex = Pattern.compile("^(\\w+)://([^:/]*)(?::(\\d+))?.*");
Matcher regexMatcher = regex.matcher("http://hq.dev.test.domain:8080/ip/CreateRegex");
if (regexMatcher.find()) {
System.out.println("[Protocol]=" + regexMatcher.group(1));
System.out.println("[Hostname]=" + regexMatcher.group(2));
System.out.println("[Port]=" + regexMatcher.group(3));
}
添加回答
举报