pep8警告Python中的正则表达式字符串,Eclipse

4urapxun  于 2023-04-11  发布在  Eclipse
关注(0)|答案(2)|浏览(120)

为什么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}是一个有效的正则表达式。

zkure5ic

zkure5ic1#

"\d""\\d"相同,因为d没有转义序列。但代码的读者不清楚。
但是,考虑\t"\t"表示制表符,而r"\t"表示文字\t字符。
因此,当您表示文字\d时,请使用原始字符串:

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

或转义反斜杠显式:

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

hfsqlsce2#

Python无法将'\d'解析为转义序列,这就是它产生警告的原因。
之后,它被传递到正则表达式解析器,作为正则表达式的E.S.工作得很好。

相关问题