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?