Подтвердить что ты не робот

Предупреждение pep8 для строки регулярного выражения в Python, Eclipse

Почему pep8 жалуется на следующую строку в коде?

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

Предупреждение, которое я получаю:

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

Можете ли вы объяснить, в чем смысл сообщения? Что мне нужно изменить в коде, чтобы было передано предупреждение W1401?

Код проходит тесты и работает как ожидалось. Более того, \d{3} является допустимым регулярным выражением.

4b9b3361

Ответ 1

"\d" совпадает с "\\d", потому что для d нет escape-последовательности. Но читателю этого кода не ясно.

Но рассмотрим \t. "\t" представляют собой разделитель таблеток, а r"\t" представляют символы буквального \ и t.

Поэтому используйте исходную строку, когда вы имеете в виду буквальный \ и d:

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

или явно выполнить обратную косую черту:

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