社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

这个Python代码中的错误是什么

Yellowspring • 3 年前 • 1521 次点击  

我只是Python的初学者。你知道为什么在这里加下划线吗? enter image description here

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130492
 
1521 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Amadan
Reply   •   1 楼
Amadan    3 年前

这是一个普通字符串,它有转义机制,在某些字符前加上反斜杠,为它们创建特殊的含义(例如。 \n , \u791c ...) 或者剥夺它们的特殊意义( \" , \\ ...). 然而,序列 \d 未定义,以及 "\d" 相当于 "d" .

(因此,您的代码将只匹配由字母的任意重复次数组成的字符串。) d 没有别的,比如 “d” , "dd" "dddddddd" ,这大概不是你想要的——这就是为什么编辑警告你那里可能有什么气味。)

这对于正则表达式来说相当不方便,因为正则表达式也使用反斜杠进行转义,所以每个反斜杠都必须另外转义。生成包含 \d ,必须将反斜杠加倍,以便反斜杠保留下来,以便包含在字符串中: \\d .如果你真的想在正则表达式中匹配反斜杠,你必须在正则表达式中转义它,但你也需要在字符串文本中转义它,这会导致一个看起来很可笑的结果 "\\\\" .

为此,Python有“原始字符串”,反斜杠转义不起作用——反斜杠就是反斜杠。要制作原始字符串,只需预加 r .

因此,你应该写下以下其中一个:

"^\\d+$"
r"^\d+$"