This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: re.sub() with re.MULTILINE not replacing all occurrences
Type: behavior Stage:
Components: Regular Expressions Versions: Python 2.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: eacousineau, ezio.melotti, mrabarnett
Priority: normal Keywords:

Created on 2012-08-23 00:03 by eacousineau, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (2)
msg168909 - (view) Author: Eric Cousineau (eacousineau) Date: 2012-08-23 00:03
[Copying post I made here: http://stackoverflow.com/questions/12082886/bug-in-python-regex-re-sub-with-re-multiline]

I'm noticing some odd behavior in Python's Regex library, and I'm not sure if I'm doing something wrong.

If I run a regex on it using re.sub(), with re.MULTILINE. It seems to only replace the first few occurrences. It replaces all occurrences if I turn off re.MULTILINE, use re.subn(..., count = 0, flags = re.MULTILINE), or compile the regex using re.compile(..., re.MULTILINE).

I am running Python 2.7 on Ubuntu 12.04.

I've posted a random example on:

http://pastebin.com/49SU8Mm2 - Output from terminal
http://codepad.org/2RO2iS4O - Script, confirming behavior (except for re.subn(), which is different on 2.5)
msg168910 - (view) Author: Eric Cousineau (eacousineau) Date: 2012-08-23 00:05
Looks like I was just writing my code incorrectly - I should have been using re.sub(..., flags = re.MULTILINE).
That explains it.
History
Date User Action Args
2022-04-11 14:57:35adminsetgithub: 59972
2012-08-23 00:05:02eacousineausetstatus: open -> closed
resolution: not a bug
messages: + msg168910
2012-08-23 00:03:04eacousineaucreate