Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pep8 warning on regex string in Python, Eclipse

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.

like image 478
alandarev Avatar asked Sep 26 '13 14:09

alandarev


1 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}") 
like image 91
falsetru Avatar answered Sep 17 '22 15:09

falsetru