regex: URL thingy with username, password, host and port

July 7, 2008 by Michael

Just in case i do keep forgetting that stuff, here’s a regex for decoding urls like


in Java:

final Hashtable<String, Integer> portMap = new Hashtable<String, Integer>();
portMap.put("ftp", 21);
portMap.put("sftp", 22);
final Pattern urlPattern = Pattern.compile("(ftp|sftp)://(\\S+):(\\S+)@([\\S&&[^:]]+)(:(\\d+))?");
final Matcher m = urlPattern.matcher(url);
	throw new RuntimeException("Invalid ftp url!");			
final String protocol =;
final String user     =;
final String password =;
final String host     =;
final int port = != null ? Integer.parseInt( : portMap.get(protocol);

Just in case anybody is interessted, i’m writing a wrapper around j2ssh and Commons::Net to support both ftp and sftp in a J2SE program.

No comments yet

Post a Comment

Your email is never published nor shared. Required fields are marked *