In <mailman.7.1353357285.29569.python-> "Joseph L. Casale" <> writes:
> Trying to robustly parse a string that will have key/value pairs separated
> by three pipes, where each additional key/value (if more than one exists)
> will be delineated by four more pipes.
> string = 'key_1|||value_1||||key_2|||value_2'
> regex = '((?
?!\|\|\|).)+)(?:\|\|\|)((?
?!\|\|\|).)+)(?: \|\|\|\|)?'
> I am not convinced this is the most effective or safest, any opinions would
> be greatly appreciated!
Regexes may be overkill here. A simple string split might be better:
string = 'key_1|||value_1||||key_2|||value_2'
pairs = string.split('||||')
for pair in pairs:
keyval = pair.split('|||')
print '%s=%s' % (keyval[0], keyval[1])
--
John Gordon A is for Amy, who fell down the stairs
B is for Basil, assaulted by bears
-- Edward Gorey, "The Gashlycrumb Tinies"