From ba4279683f8eb8f59be10d12547ea89480614388 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Mon, 4 Sep 2017 16:32:10 -0400 Subject: bpo-1198569: Allow string.Template braced pattern to be different (#3288) * bpo-1198569: Allow the braced pattern to be different ``string.Template`` subclasses can optionally define ``braceidpattern`` if they want to specify different placeholder patterns inside and outside the braces. If None (the default) it falls back to ``idpattern``. --- Doc/library/string.rst | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'Doc/library/string.rst') diff --git a/Doc/library/string.rst b/Doc/library/string.rst index 8176a81d4c..1a9b630975 100644 --- a/Doc/library/string.rst +++ b/Doc/library/string.rst @@ -754,9 +754,21 @@ attributes: be set in the subclass's class namespace). * *idpattern* -- This is the regular expression describing the pattern for - non-braced placeholders (the braces will be added automatically as - appropriate). The default value is the regular expression - ``[_a-z][_a-z0-9]*``. + non-braced placeholders. The default value is the regular expression + ``[_a-z][_a-z0-9]*``. If this is given and *braceidpattern* is ``None`` + this pattern will also apply to braced placeholders. + + .. versionchanged:: 3.7 + *braceidpattern* can be used to define separate patterns used inside and + outside the braces. + +* *braceidpattern* -- This is like *idpattern* but describes the pattern for + braced placeholders. Defaults to ``None`` which means to fall back to + *idpattern* (i.e. the same pattern is used both inside and outside braces). + If given, this allows you to define different patterns for braced and + unbraced placeholders. + + .. versionadded:: 3.7 * *flags* -- The regular expression flags that will be applied when compiling the regular expression used for recognizing substitutions. The default value -- cgit v1.2.1