У меня возникла проблема с re
модулем в Python 3.6.5. В моем регулярном выражении есть этот шаблон:
'\\nRevision: (\d+)\\n'
Но когда я его запускаю, я получаю файл DeprecationWarning
.
Я искал проблему на SO , и, собственно, не нашел ответа - что мне использовать вместо \d+
? Просто [0-9]+
или может что-то еще?
python
regex
python-3.x
mchfrnc
источник
источник
\d
или использованиеr'\\nRevision: (\d+)\\n'
?Ответы:
Python 3 интерпретирует строковые литералы как строки Unicode, и поэтому ваш
\d
код рассматривается как экранированный символ Unicode.Вместо этого объявите свой шаблон RegEx как необработанную строку, добавив его
r
, как показано ниже:Это также означает, что вы также можете отбросить
\n
escape-символы, поскольку они будут анализироваться как символы новой строкиre
.источник
\d
рассматривается как нераспознанная escape-последовательность и, как таковая, остается без изменений. Предупреждение об устаревании выдается, начиная с Python 3.6. В какой-то будущей версии Python это будет SyntaxError. Подробности из "2.4.1. Строковые и байтовые литералы" в Документах.'\\d'
.