美文网首页
Python 正则表达式(r的作用)- 一个关于反斜杠转义的故事

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

作者: Devops海洋的渔夫 | 来源:发表于2018-12-23 15:55 被阅读68次

仅供学习,转载请注明出处

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:\a

In [143]:   

In [143]: ret = re.match("c:\\\\a\\\\b\\\\c",str1).group()                        

In [144]: print(ret)                                                              
c:\a\b\c

In [145]: ret = re.match(r"c:\\a\\b\\c",str1).group()                             

In [146]: print(ret)                                                              
c:\a\b\c

In [147]:  

说明

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

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

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


关注微信公众号,回复【资料】、Python、PHP、JAVA、web,则可获得Python、PHP、JAVA、前端等视频资料。

相关文章

  • Python day19_正则

    注意 尽量在正则表达式的外面加上r 如:r'\d+' 避免匹配中遇到\反斜杠转义 模块: import re 举例...

  • 反斜杠

    Windows把反斜杠(\) 作为目录分隔符,而python用反斜杠表示转义符! 所以,你得使用转义符来表示反斜杠...

  • python中'r','b','u','f'含义

    字符串前加r r""作用是非转义的原始字符串,原意输出。相对特殊的字符,其中可能包含转义字符,反斜杠加上对应字母,...

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

    仅供学习,转载请注明出处 r的作用 说明 Python中字符串前面加上 r 表示原生字符串 与大多数编程语言相同,...

  • java正则

    首先,反斜杠的问题 在 Java 中,双反斜杠才表示转义字符: \\表示:我要插入一个正则表达式的反斜线,所以其后...

  • 2018-10-31

    1、反斜杠何时转义何时换行不理解 使用反斜杠(\)+n转义特殊字符 2、在字符串前面添加一个 r,表示原始字符串,...

  • Python中的字符串处理

    Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表: 转义字符描述 \...

  • Python 基础2

    Python 转义字符 在需要在字符中使用特殊字符时,python 用反斜杠\转义字符。如下表: 转义字符描述 \...

  • 有关python的正则表达式全解,想深入爬虫的你必须先学会这些!

    转义字符 正则表达式是建立在字符串的基础上,当需要在字符中使用特殊字符时,python用反斜杠转义字符。如下表: ...

  • 正则表达式

    一. 反斜杠的使用 1. 在普通字符串中,通过反斜杠“\”转义某些字符 转义字符含义\r回到当前行的行首,例如"a...

网友评论

      本文标题:Python 正则表达式(r的作用)- 一个关于反斜杠转义的故事

      本文链接:https://www.haomeiwen.com/subject/sijnkqtx.html