0

My flake8 gives me a W605 invalid escape sequence warning for this piece of example code.

import re


def foobar():
    rex = re.compile('Version: \d+.\d+.\d+.*', re.MULTILINE)

    for match in rex.findall(' Version: 1.2.3 '):
        print(match)


if __name__ == '__main__':
    foobar()

But running this with Python 3.9.2 makes no problem. Python doesn't give me a SyntaxWarning or anything else. Python doesn't give me an error or warning. Only flymake8 gives me this error.

I do understand what is wrong with the pattern string in compile(). There should be a r'' or the regex-escape characters should be escaped them selfs (e.g. 'Version: \\d').

But my question is about why Python doesn't give me an error about it and why does it work. The pattern matches. Shouldn't there be an error or something? Does Python identify this string as an r-String by itself?

buhtz
  • 10,774
  • 18
  • 76
  • 149
  • This is about `flake8` and not about a warning/error from Python. That is the problem: Python doesn't give me an error or a warning. But shouldn't it? – buhtz Sep 10 '22 at 18:39
  • I added a closure link to explain why the string retains the backslash even without `r`. – trincot Sep 12 '22 at 12:19

0 Answers0