Python 弃用警告:无效的转义序列-使用什么来代替\d?
Python 3.6.5中的Python 弃用警告:无效的转义序列-使用什么来代替\d?,python,regex,python-3.x,Python,Regex,Python 3.x,Python 3.6.5中的re模块遇到了一个问题。 我的正则表达式中有以下模式: '\\nRevision: (\d+)\\n' 但是当我运行它时,我会得到一个弃用警告 我搜索了,但实际上还没有找到答案-我应该用什么来代替\d+?只是[0-9]+或者其他什么?Python 3将字符串文字解释为Unicode字符串,因此您的\d被视为转义Unicode字符 通过在r前面加上前缀,将正则表达式模式声明为原始字符串,如下所示: r'\nRevision: (\d+)\n' 这也意味着您可以删除\
re
模块遇到了一个问题。
我的正则表达式中有以下模式:
'\\nRevision: (\d+)\\n'
但是当我运行它时,我会得到一个弃用警告
我搜索了,但实际上还没有找到答案-我应该用什么来代替\d+
?只是[0-9]+
或者其他什么?Python 3将字符串文字解释为Unicode字符串,因此您的\d
被视为转义Unicode字符
通过在r
前面加上前缀,将正则表达式模式声明为原始字符串,如下所示:
r'\nRevision: (\d+)\n'
这也意味着您可以删除\n
的转义符,因为这些转义符将被re
解析为换行符。这应该不是问题,提供更多的代码?双转义\d
或使用r'\\n转义:(\d+\\n'
),更精确一点,\d
被视为无法识别的转义序列,因此保持不变。Python3.6之后给出了一个弃用警告。在Python的未来版本中,它将是一个语法错误。文档中“2.4.1.String和Bytes literals”的详细信息。@VPfB该线程很旧,但我正在寻找同一问题的答案。如果将\d视为转义的Unicode字符,如何区分d(字母字符)和\d(任何数字),而不将正则表达式模式视为原始字符串?(相同的问题适用于\w、\w等。)@ggg如果我正确理解了您的问题-请转义您的反斜杠,这样字符串将读取'\\d'
。这也适用于\s
和其他转义字符