r的作用

>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\
>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

说明

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

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

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

>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a

python正则表达式中原生字符r的作用相关推荐

  1. Python正则表达式中的‘r‘

    Python正则表达式中的'r' 最近遇到一个非常困惑的地方,那就是在使用Python中的正则表达式的时候,正则表达式前面的'r'带来的影响.自己最开始的困惑点在于,'r'的作用是声明为原始字符串,那 ...

  2. Python正则表达式中的转义问题\\\\\\\\\????(焯!什么鬼)

    这次写这篇博客是一个容易把自己绕糊涂的问题 就是转义问题啦(开练开练) 转义字符和原生字符串: 首先讲一下一些基础的概念 转义字符和原生字符串的区别 '\n'代表换行,是一个转义字符 r'\n' 代表 ...

  3. python正则表达式中的转义字符_python 正则表达式之转义字符

    最近在整理python相关的知识,使用python对网站进行爬取数据的时候,需要使用到转义字符,之前对转义字符理解一直比较模糊,并且在python中还有一个叫原生字符r.所以通过网上调查资料对该内容进 ...

  4. Python正则表达式中使用findall函数遇到括号嵌套的小坑

    1.findall函数 我们都知道括号在正则表达式中起到了分类的作用,但当定义好一个自己的字符匹配模式(含有括号)后,使用findall()函数会遇到一点小坑. 具体来说就是: 可以发现是否将整个正则 ...

  5. python正则表达式中的r与转义字符_左手用R右手Python系列13——字符串处理与正则表达式...

    原标题:左手用R右手Python系列13--字符串处理与正则表达式 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化.个 ...

  6. Python正则表达式中的r

    在Python的string前面加上'r', 是为了告诉编译器这个string是个raw string,不要转意backslash '' . 例如,\n 在raw string中,是两个字符,\和n, ...

  7. python正则表达式中的转义字符_详解python中正则表达式的反斜线的转义功能

    最近深入研读了正则表达式的一本经典著作,对于在python中使用正则表达式时使用反斜线转义功能时有些心得,特与大家分享. 核心思想:在python中使用正则表达式时要切记反斜线具有两层转义功能,如果你 ...

  8. Python正则表达式中的贪心模式和非贪心模式

    声明:最近发现有人利用我在百度云盘里免费分享的127课Python视频盈利,并声称获得我的授权.在此,我声明,文末百度云盘里的Python视频是免费的,不会授权给任何人或机构进行销售.如果再发现有人卖 ...

  9. php正则表达式中的字符是,PHP_PHP正则表达式中的特殊字符,字符/意义:对于字符,通常表 - phpStudy...

    字符/ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线 ...

最新文章

  1. HDU 4540 威威猫系列故事――打地鼠(DP)
  2. ubuntu常用配置整理
  3. 简单的图片处理servlet
  4. matlab一句一句调试,matlab程序怎样调试和运行
  5. SpringMVC框架介绍
  6. Hard Disk Drive HDU - 4788——24行代码AC,解题报告
  7. Win7旗舰版电脑开机慢的解决方法
  8. egret性能优化总结
  9. HDU1686:Oulipo
  10. 标定工具CANape软件使用之新建工程
  11. VSF表格 粘贴板ClipBoard 将数据粘贴到表格 VB6.0
  12. Windows Server Raid磁盘阵列
  13. indexOf用法小结
  14. 2021年茶艺师(中级)最新解析及茶艺师(中级)考试总结
  15. C语言访问数组的常用方法,C语言数组基本知识点详解
  16. 音频声学基础一,基本概念介绍
  17. 训练集、测试集的划分——K折交叉验证
  18. 电动汽车充电桩资料搜集
  19. 绝对值海德汉光栅尺LC481/LC483/LC485/LC185/LC183/LC193F/LC195F/LC195S/LC195P/LC493F/LC495F/LC493M/LC115参数针脚定义
  20. mysql查看当前环境变量

热门文章

  1. 三十、MySQL 处理重复数据
  2. 详解JVM内存管理与垃圾回收机制5 - Java中的4种引用类型
  3. C#并行编程-并发集合
  4. Jetty9 源码初解(2)——IO之Connection
  5. 实现MySQL逗号数据计数
  6. linq to sql查询中返回linq自动建立的实体类型)
  7. 关于cacti图形显示不正常的解决办法
  8. pku 1511 Invitation Cards
  9. windowXP 任务计划无法启动 错误代码:0X80041315
  10. Enterprise Library Logging App Block的时区问题