从数据库url获取数据库名host及port

不多说直接上代码

public static void getHostFrom(String url) {
		Pattern p = Pattern.compile("jdbc:(?\\w+):.*((//)|@)(?.+):(?\\d+).*");
		Matcher m = p.matcher(url);
		if(m.find()) {
			System.out.println(m.group("db"));
			System.out.println(m.group("host"));
			System.out.println(m.group("port"));
		}
		
}
public static void main(String[] args) {
		getHostFrom("jdbc:mysql://127.0.0.1:3306/databaseName");
		getHostFrom("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=databaseName");
		getHostFrom("jdbc:oracle:thin:@localhost:1521:dbName");
		
}

具体原理参照:Java String.ReplaceAll捕获组用法(正则表达式捕获组及命名捕获组)

你可能感兴趣的:(java,数据库,数据库url,获取数据库名,获取host,获取端口,获取地址)