The Python docs say:
re.MULTILINE: When specified, the pattern character ‘^’ matches at the beginning of the string and at the beginning of each line (immediately following each newline)… By default, ‘^’ matches only at the beginning of the string…
So what’s going on when I get the following unexpected result?
>>> import re >>> s = '''// The quick brown fox. ... // Jumped over the lazy dog.''' >>> re.sub('^//', '', s, re.MULTILINE) ' The quick brown fox.\n// Jumped over the lazy dog.'
Look at the definition of
re.sub:The 4th argument is the count, you are using
re.MULTILINE(which is 8) as the count, not as a flag.Either use a named argument:
Or compile the regex first: