pep8 warning on regex string in Python, Eclipse

Question:

Why is pep8 complaining on the next string in the code?

import re
re.compile("d{3}")

The warning I receive:

ID:W1401  Anomalous backslash in string: 'd'. String constant might be missing an r prefix.

Can you explain what is the meaning of the message? What do I need to change in the code so that the warning W1401 is passed?

The code passes the tests and runs as expected. Moreover d{3} is a valid regex.

Asked By: alandarev

||

Answers:

"d" is same as "\d" because there’s no escape sequence for d. But it is not clear for the reader of the code.

But, consider t. "t" represent tab chracter, while r"t" represent literal and t character.

So use raw string when you mean literal and d:

re.compile(r"d{3}")

or escape backslash explicitly:

re.compile("\d{3}")
Answered By: falsetru

Python is unable to parse 'd' as an escape sequence, that’s why it produces a warning.

After that it’s passed down to regex parser literally, works fine as an E.S. for regex.

Answered By: userA789
Categories: questions Tags: , , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.