[py-usr] flake8 gives me a W605 but Python don't

c.buhtz at posteo.jp c.buhtz at posteo.jp
Sat Sep 10 14:46:33 EDT 2022


Hello,

My `flake8` gives me a "W605 invalid escape sequence" [1] 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?

[1] -- <https://www.flake8rules.com/rules/W605.html>


More information about the Python-list mailing list