How to parse a simple format with ranges? For example a query string format: string[string] params = parse("foo=1&bar=1%202&baz=1+2+3"); assert(params["foo"] == "1"); assert(params["bar"] == "1 2"); assert(params["baz"] == "1 2 3"); parse() should accept a string, an stream or anything else that make sense. Thanks