New submission from mollison <molli...@cs.unc.edu>:

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 <rep...@bugs.python.org>
<https://bugs.python.org/issue36645>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to