Sto creando una classe che rinomina un file utilizzando un formato specificato dall'utente. Questo formato sarà una semplice stringa il cui metodo str.format
verrà chiamato per riempire gli spazi vuoti.Come posso trovare tutti i segnaposto per str.format in una stringa python usando un'espressione regolare?
Si scopre che la mia procedura richiederà l'estrazione di nomi di variabili contenuti in parentesi graffe. Ad esempio, una stringa può contenere {user}
, che dovrebbe produrre user
. Naturalmente, ci saranno diverse serie di parentesi graffe in una singola stringa, e avrò bisogno di ottenere il contenuto di ciascuna, nell'ordine in cui appaiono e di inviarle ad una lista.
Pertanto, "{foo}{bar}"
deve produrre ['foo', 'bar']
.
Ho il sospetto che il modo più semplice per farlo sia utilizzare re.split
, ma non so nulla delle espressioni regolari. Qualcuno mi può aiutare?
Grazie in anticipo!
Se si conoscono tutte le variabili possibili * in anticipo *, si può passare semplicemente t orlo tutto a 'str.format' - ignorerà quelli non in pattern. ''{utente} _ {bar}'. format (utente = 'Mike', foo = 1, bar = 2)' produrrà 'Mike_2'. Ho avuto la fortuna di aver permesso alle vars fisse in un dict, così ho potuto saltare cercando vars in pattern. In ogni caso, conoscere 'string.Formatter()' è utile. – yentsun