Python 正则表达式(r的作用)- 一个关于反斜杠转义的故事(python编程)

网友投稿 603 2022-08-26


Python 正则表达式(r的作用)- 一个关于反斜杠转义的故事(python编程)

r的作用

In [132]: str1 = "c:\\a\\b\\c" In [133]: str1 Out[133]: 'c:\\a\\b\\c'In [134]: print(str1) c:\a\b\c# 从上面这两个打印,可以看出print对反斜杠进行了转义,将两个\ 转义为了一个 \In [135]: # 那么如果我想要匹配字符串中的 c:\\ ,我在匹配规则就要写 c:\\\\ ,因为\\会被转义为一个 \In [135]: re.match("c:\\\\",str1).group() Out[135]: 'c:\\'In [136]: # 而如果再用print来打印的时候,就会发现 \\ 再次被转义为了 \ In [136]: ret = re.match("c:\\\\",str1).group() In [137]: print(ret) c:\In [138]: # 那么如果需要匹配字符串 c:\\a 的话,那么匹配规则就要写 c:\\\\a 了。这样就比较麻烦。有没有简单的方法呢?In [138]: ret = re.match("c:\\\\a",str1).group() In [139]: print(ret) c:\a# 在匹配规则前面加 r ,那么就只是要写 c:\\a 就可以匹配字符串 c:\\a 了。In [141]: ret = re.match(r"c:\\a",str1).group() In [142]: print(ret) c:\aIn [143]: In [143]: ret = re.match("c:\\\\a\\\\b\\\\c",str1).group() In [144]: print(ret) c:\a\b\cIn [145]: ret = re.match(r"c:\\a\\b\\c",str1).group() In [146]: print(ret) c:\a\b\cIn [147]:

说明

Python中字符串前面加上 r 表示原生字符串

与大多数编程语言相同,正则表达式里使用​​"\"​​​作为转义字符,这就可能造成反斜杠困扰。 假如你需要匹配文本中的字符​​​"\"​​​,那么使用编程语言表示的正则表达式里将需要4个反斜杠​​"\\"​​:前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。

Python里的原生字符串很好地解决了这个问题,有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 进程之间的通信 - 队列Queue(python下载安装教程)
下一篇:Python 正则表达式(匹配分组)(python能做什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~