Using percent signs with SafeConfigParser
__peter__ at web.de
Sat Apr 11 21:06:52 CEST 2009
Márcio Faustino wrote:
> Does the SafeConfigParser class correctly detects lone percent signs?
> For example, shouldn't the string "100%%" be accepted as a valid
> value? Executing the code below should only print one error, instead
> it prints 2. (I've tested this with version 2.6.1 on Windows XP.)
> It seems the "_badpercent_re" regular expression (an attribute of
> SafeConfigParser, with value "%[^%]|%$") is flawed:
> - The first alternative "%[^%]" fails with the string "%%_", because
> it matches "%_".
> - The second alternative "%$" fails with the string "%%", because it
> matches "%".
I think you are right. Please file a bug report .
> The correct regular expression is "(?<!%)%(?!%)", which passes the
> previous tests.
IMO this doesn't fix the problem because
(1) it allows "%%%" which is also incorrect
(2) _interpvar_re has already butchered values like "%%(alpha)s" to "%"
More information about the Python-list