文字列テンプレートが置換に使用する可能性のあるすべてのキーワード引数のリストを取得したいと考えています。テンプレートからキーを取得
これ以外の方法はありますか?
text="$one is a $lonely $number."
keys = get_keys(text)
# keys = ('one', 'lonely', 'number')
私は、単純なマッド-libのようなプログラムを書いている、と私はstring.formatまたはTemplate stringsのいずれかでテンプレート置換を実行したい:
私はこのような何かをしたいです。私は '物語'を書いて、私のプログラムで、ユーザが作り出す必要のあるすべての「キーワード」(名詞、動詞など)のテンプレートファイルを作りたいと思います。私は正規表現でこれを行うことができることを知っていますが、代替ソリューションがあるかどうか疑問に思っていましたか?私はstring.formatとstringテンプレートの代替案を公開しています。
私はそこに解決策があると思っていましたが、すばやい検索でそれを見つけられませんでした。私はこの質問、reverse template with pythonを見つけましたが、実際には私が探しているものではありません。これはre
で行うことができることを再確認します。
EDIT:
私は$$
は '$' のエスケープである、と私はしたいのトークンではないことに注意してください。 $$5
は "$ 5"にレンダリングする必要があります。
私が探していたものはまあまあです。たぶん私の質問はうまくいく必要がありますが、私は基本的に車輪を再構築したくありませんでした。ありがとう。 – Yann
文字列がキーで始まる場合、これは機能しません。 '{foo} test 'で上記を試してください。 – syntacticmarmalade
@syntacticmarmalade Python 3.6でうまく動作します。リストに最後に 'None'があることを意味するのは、文字列がキーで終わらないからです。 'None'のインスタンスをフィルタすることができます。 –