Wie finde ich alle Platzhalter für str.format in einer Python-Zeichenkette mit einem Regex?

7

Ich erstelle eine Klasse, die eine Datei unter Verwendung eines benutzerdefinierten Formats umbenennt. Dieses Format wird eine einfache Zeichenfolge sein, deren str.format -Methode aufgerufen wird, um die Leerzeichen auszufüllen.

Es stellt sich heraus, dass meine Prozedur das Extrahieren von in geschweiften Klammern enthaltenen Variablennamen erfordert. Zum Beispiel kann ein String {user} enthalten, was user ergeben sollte. Natürlich wird es mehrere Sätze von geschweiften Klammern in einer einzigen Zeichenfolge geben, und ich muss den Inhalt jedes in der Reihenfolge, in der sie erscheinen, abrufen und sie in einer Liste ausgeben.

Daher sollte "{foo}{bar}" ['foo', 'bar'] ergeben.

Ich vermute, dass dies am einfachsten mit re.split geschieht, aber ich weiß nichts über reguläre Ausdrücke. Kann mir jemand helfen?

Vielen Dank im Voraus!

    
blz 27.12.2012, 21:45
quelle

2 Antworten

12

Verwenden von re.findall() :

%Vor%     
Ashwini Chaudhary 27.12.2012, 21:48
quelle
37

Eine andere Möglichkeit besteht darin, den eigentlichen Formatierer von Python zu verwenden, um das Feld zu extrahieren Namen für Sie:

%Vor%

oder (kürzer, aber weniger informativ):

%Vor%     
DSM 27.12.2012 21:58
quelle

Tags und Links