Parse URL for Database connection

I’m trying to parse a database URL like this


I cannot find any way to Connect using a Connection string or even parse the URL into a structure or object so that I get the individual fragments to pass it to the Database object.

Am I overlooking something?

should be doable with a regex search.
@Kem_Tekinay will certainly find my approach “not optimized” but here it is :

dim rx as new RegEx
rx.SearchPattern = "(?mi-Us)postgres://(.+):(.+)@(.+):(.+)/db\?sslmode=(.+)&application_name=(.+)"

dim rxOptions as RegExOptions = rx.Options
rxOptions.LineEndType = 4

dim match as RegExMatch = rx.Search( sourceText )
while match isa RegExMatch
// Do something
dim user as string = rx.subexpressionstring(1)

match = rx.Search // Fetch the next match

I’d replace the dot-stars with something more specific like [^:]* or [^&]*, but the problem is the order of the parameters. If they are switched, the pattern will fail.

It might be better to use a RegEx for everything up to ?, then use a regex or Split to pull out each parameter.