> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:python- > [EMAIL PROTECTED] On Behalf Of teddyber > Sent: Friday, January 11, 2008 1:51 PM > To: python-list@python.org > Subject: split parameter line with quotes > > 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... >
import re s='''qop="auth,auth-int,auth-conf",cipher="rc4-40,rc4-56,rc4,des,3des",m axbuf=1024,charset=utf-8,algorithm=md5-sess''' print s all = re.findall(r'(.*?)=(".*?"|[^"]*?)(,|$)', s) print all for i in all: print i[0], "=", i[1].strip('"') Output: qop="auth,auth-int,auth-conf",cipher="rc4-40,rc4-56,rc4,des,3des",maxbuf =1024,charset=utf-8,algorithm=md5-sess [ ('qop', '"auth,auth-int,auth-conf"', ','), ('cipher', '"rc4-40,rc4-56,rc4,des,3des"', ','), ('maxbuf', '1024', ','), ('charset', 'utf-8', ','), ('algorithm', 'md5-sess', '') ] qop = auth,auth-int,auth-conf cipher = rc4-40,rc4-56,rc4,des,3des maxbuf = 1024 charset = utf-8 algorithm = md5-sess ***** The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential, proprietary, and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers. GA621 -- http://mail.python.org/mailman/listinfo/python-list