Harlequin: (Python) Zuweisung in IF

Beitrag lesen

Yerf!

Ich steh grad auf'm Schlauch...

Python-Manual sagt:
"Note that in Python, unlike C, assignment cannot occur inside expressions. C programmers may grumble about this, but it avoids a common class of problems encountered in C programs: typing = in an expression when == was intended."

Wie kann ich trotzdem so etwas in der Art elegant lösen:

if (m = re.search('^\s*String (\w)*\s*{\w*$', line)) != None:
 identifier = m.group(1)
elif (m = re.search('^\s*Text [(\w*)] (\w)*\s*{\w*$', line)) != None:
 text = m.group(1);
 content = m.group(2);
[...weitere elif dieser Art]

Was ich damit möchte: ich muss ein Textfile parsen und dabei abhängig vom Type der Zeile (erkenne ich am Aufbau) mir bestimmte Teile herauskopieren.

Derzeit benutze ich eben einen RegExp und Search um den Aufbau der Zeile zu ermitteln (es gibt einen Match, wenn der Aufbau passt) und möchte mir dann aus den Groups die gesuchten Informationen holen. Das Problem ist aber das der oben beschriebene Code so nicht funktioniert, da die Zuweisung des MatchObjektes nach m im IF nicht möglich ist. Muss ich wirklich den Search 2 mal ausführen, einmal um zu ermitteln ob er passt und dann im Körper des IF nochmal um an die Groups zu kommen?

Gruß,

Harlequin

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->