On Jan 11, 10:50 am, teddyber <[EMAIL PROTECTED]> wrote: > Hello, > > first i'm a newbie to python (but i searched the Internet i swear). > i'm looking for some way to split up a string into a list of pairs > 'key=value'. This code should be able to handle this particular > example string : > > qop="auth,auth-int,auth-conf",cipher="rc4-40,rc4-56,rc4,des, > 3des",maxbuf=1024,charset=utf-8,algorithm=md5-sess > > i know i can do that with some regexp (i'm currently trying to learn > that) but if there's some other way... > > thanks
The problem is that you are using commas for delimiters at two different levels. I would start by replacing the commas between quotation marks with some other delimiter, such as spaces of semicolons. To do that, step through each character and keep a count of quotation marks. While the count is odd, replace each comma with the selected alternative delimiter. While the count is even, leave the comma. [An alternative would be to replace the commas outside the quotation marks.] Once that is done, the problem is straightforward. Split the string on commas (using string.split(",")). Then split each item in the list by "=". Use the [0] element for the key, and use the [1] element for the value (first stripping off the quotation marks if necessary). If you need to further split each of the values, just split on whatever delimiter you chose to replace the commas. -- http://mail.python.org/mailman/listinfo/python-list