a string in the "[<provider>://][<username>[:<password>]@]<connection_params>" form
a place to store the new string containing the <connection_params> part
a place to store the new string containing the <provider> part
a place to store the new string containing the <username> part
a place to store the new string containing the <password> part, or null
"DB_NAME=mydb;HOST=server"
"PostgreSQL"
"meme"
"pass"]]></programlisting>
Extract the provider, connection parameters, username and password from string. in string, the various parts are strings which are expected to be encoded using an RFC 1738 compliant encoding. If they are specified, the returned provider, username and password strings are correctly decoded.
For example all the following connection strings: <programlisting><![CDATA[ PostgreSQL://meme:passDB_NAME=mydb;HOST=server PostgreSQL://memeDB_NAME=mydb;HOST=server;PASSWORD=pass PostgreSQL://memeDB_NAME=mydb;PASSWORD=pass;HOST=server PostgreSQL://memePASSWORD=pass;DB_NAME=mydb;HOST=server PostgreSQL://DB_NAME=mydb;HOST=server;USERNAME=meme;PASSWORD=pass PostgreSQL://DB_NAME=mydb;HOST=server;PASSWORD=pass;USERNAME=meme PostgreSQL://DB_NAME=mydb;USERNAME=meme;PASSWORD=pass;HOST=server PostgreSQL://PASSWORD=pass;USERNAME=meme;DB_NAME=mydb;HOST=server PostgreSQL://:passUSERNAME=meme;DB_NAME=mydb;HOST=server PostgreSQL://:passDB_NAME=mydb;HOST=server;USERNAME=meme]]></programlisting>
will return the following new strings (double quotes added here to delimit strings): <programlisting><![CDATA[