import re REGEX = re.compile(r""" (?!<\w)(?P[-\w]+)= (?P(?P')|(?P"))? (?P(?(single)[^']+?|(?(double)[^"]+?|\S+))) (?(quote)(?P=quote)) """, re.VERBOSE) DATA = ["name1=value1", "name2='value #2'", '''name3="value '3'"'''] for data in DATA: match = REGEX.match(data) if match: print('name="%s" value="%s"' % (match.group("name"), match.group("value")))