Und vermutlich wäre das zum parsen einer sehr simplen Konfigurations-beschreibungssprache besser geeignet als für CSS. aber er *funktioniert*!
Und nein, reguläre ausdrücke sind nicht grad meine stärke.
Code: Alles auswählen
def cssparse(string):
parts = re.findall(
r'(?P<cssgroup>(.*?)\{(.*?)\})', string, re.MULTILINE | re.DOTALL)
cssdata = {}
for item in parts:
blockname, content = item[0].split('{')
blockname = blockname.strip()
content = content[:-1]
cssdata[blockname] = {}
for pair in content.split(';'):
if pair and ':' in pair:
key, value = pair.split(':')
cssdata[blockname][key.strip()] = value.strip()
return cssdata