「Python入門」文字列を扱うstring.Templateの使い方
pythonコード
# -*- coding: utf-8 -*-
import string
t = string.Template('$var’)
print(t.pattern.pattern)
class DemoTemplate(string.Template):
delimiter = '{{'
pattern = r""’
\{\{(?:
(?P<escaped>\{\{) | # Escape sequence of two delimiters
(?P<named>[_a-z][_a-z0-9]*)\}\} | # delimiter and a Python identifier
{(?P<braced>[_a-z][_a-z0-9]*)}\}\} | # delimiter and a braced identifier
(?P<invalid>) # Other ill-formed delimiter exprs
)
"’
t2 = DemoTemplate(""’
{{{{
{{var}}
"’)
print('MATCHES: ', t2.pattern.findall(t2.template))
print('SUBSTITUTED: ', t2.safe_substitute(var=’replacement’))
出力結果
\$(?:
(?P<escaped>\$) | # Escape sequence of two delimiters
(?P<named>[_a-z][_a-z0-9]*) | # delimiter and a Python identifier
{(?P<braced>[_a-z][_a-z0-9]*)} | # delimiter and a braced identifier
(?P<invalid>) # Other ill-formed delimiter exprs
)
MATCHES: [('{{', ", ", "), (", 'var’, ", ")]
SUBSTITUTED:
{{
replacement