Tworzę klasę, która zmienia nazwę pliku przy użyciu formatu określonego przez użytkownika. Ten format będzie prostym łańcuchem, którego metoda zostanie wywołana, aby wypełnić puste pola.Jak mogę znaleźć wszystkie symbole zastępcze dla str.format w łańcuchu Pythona za pomocą wyrażenia regularnego?
Okazuje się, że moja procedura będzie wymagać wydobycia nazw zmiennych zawartych w nawiasach. Na przykład ciąg może zawierać {user}
, co powinno dać user
. Oczywiście będzie kilka zestawów nawiasów klamrowych w jednym ciągu, a ja będę musiał pobrać zawartość każdego z nich, w kolejności, w jakiej się pojawiają i wyprowadzić je do listy.
Zatem "{foo}{bar}"
powinien dawać ['foo', 'bar']
.
Podejrzewam, że najprostszym sposobem, aby to zrobić jest użycie re.split
, ale ja nic o wyrażeniach regularnych znać. Czy ktoś może mi pomóc?
Z góry dziękuję!
W przypadku znasz wszystkich możliwych zmiennych * wcześniej *, można po prostu przejść t zawęź wszystkie do "str.format" - zignoruje te nie we wzorcu. ''{user} _ {bar}'. format (użytkownik = 'Mike', foo = 1, bar = 2)' wypisze 'Mike_2'. Zdarzyło mi się, że pozwoliłem, aby vary zostały ustalone w dyktowaniu, więc mogłem pominąć szukanie wzorców. W każdym razie znajomość 'string.Formatter()' jest przydatna. – yentsun