New submission from mollison <[email protected]>:
This is regarding the change to re.sub() between 3.6 and 3.7 that results in
different behavior even for simple cases like the following:
re.sub('a*','b', 'a') returns 'b' in 3.6 and 'bb' in 3.7
This change is well documented here:
https://docs.python.org/3/whatsnew/3.7.html#changes-in-the-python-api
However, it is not well documented here:
https://docs.python.org/3.7/library/re.html
The latter document does actually contain the appropriate text: "Empty matches
for the pattern are replaced when adjacent to a previous non-empty match."
However, the formatting makes this text look like it was always there, and is
not part of the 3.7 changes announcement.
That is how I interpreted it, leading to some lost productivity.
After so many years, people don't expect the regex engine to change like this,
and that only makes it easier to misinterpret that text as always have been
there vs. being new to 3.7.
Related:
https://bugs.python.org/issue32308
----------
assignee: docs@python
components: Documentation
messages: 340370
nosy: docs@python, mollison
priority: normal
severity: normal
status: open
title: re.sub() library entry does not adequately document surprising change in
behavior between versions
versions: Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36645>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com