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

字符串转义

反斜杠,在python中比较特殊,就是它可以用来构成一些特殊字符,比如"\n"表示换行,"\t"表示制表符。

其中的'\n'已转义为换行符,而'\W'没有发生转义,原因是"\W"在字符串转义中并不对应者特殊字符,没有特殊含义。

正则转义

上面仅仅是字符串转义。在正则表达式中也存在转义,先称作"正则转义"。在正则表达式中"\d"代表数字,"\s"代表空白符。提取"3/8"反斜杠之前的数字

import re

string = '3\8'

m = re.search('(\d+)\\\\', string)

if m is not None:

print (m.group(1) )

n = re.search(r'(\d+)\\', string)

if n is not None:

print (n.group(1) )

正则表达式字符串需要经过两次转义,这两次分别是上面的"字符串转义"和正则表达式中的转义

(1)'\\'的过程

先进行“字符串转义”,前两个反斜杠和后两个反斜杠分别被转义成了一个反斜杠;即“\|\”被转成了“|\”(“|”为方便看清,请自动忽略)。“字符串转义”后马上进行“正则转义”,“\”被转义为了“\”,表示该正则式需要匹配一个反斜杠。

(2)r'\'的过程

由于原始字符串中所有字符直接按照字面意思来使用,不转义特殊字符,故不做“字符串转义”,直接进入第二步“正则转义”,在正则转义中“\”被转义为了“\”,表示该正则式需要匹配一个反斜杠。

由于正则表达式使用反斜杠来转义特殊字符,而python自身处理字符串时,反斜杠也是用于转义字符,这样就产生一个双重转换的问题,

python正则表达式中的转义字符_python 正则表达式之转义字符相关推荐

  1. split在python中什么意思_python 正则表达式 split(python里split什么意思)

    split rom gui我想用正则表达式实现.谢谢. 问题说split(new char[] {'/t'}明: 例如:s = "01-1" 或 s = "01-01" 想截取"01-&qu ...

  2. python中findall函数_Python正则表达式 findall函数详解

    在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下:import re str= ...

  3. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

  4. python正则表达式aabb式成语_python——正则表达式

    今天看python网络数据采集,看到了正则表达式部分,感觉挺有趣的,记录下来 首先为什么叫正则表达式--它可以识别正则字符串 什么是正则字符串--任意可以用一系列线性规律构成的字符串 例子一: 1)字 ...

  5. python正则r的作用_Python正则表达式,这一篇就够了!

    原标题:Python正则表达式,这一篇就够了! 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达 ...

  6. python re 匹配多行_Python正则表达式,看这一篇就够了

    作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...

  7. python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符>>> >>> r=re.compile(r'.*') >>> ...

  8. python输出整数部分和小数_Python 正则表达式:只要整数和小数

    要求用户只能输入数字(包括整数和小数),如何用正则表达式验证用户输入? 以下为简单但不严谨的正则表达式: pat1='\d+(?:\.\d+)?'#整数或小数 #金额数值(小数或整数,整数部分每三位数 ...

  9. python不包含某字符_python正则表达式匹配不包含某几个字符的字符串方法

    python正则表达式匹配不包含某几个字符的字符串方法 一.匹配目标 文件中所有以https?://开头,以.jpg|.png|.jpeg结尾的字符串 二.尝试过程 1) 自然想到正则表达式r'(ht ...

最新文章

  1. Unity导出apk出现的问题,JDK,Android SDK,NDK,无“安装模块”
  2. matlab学习第一天
  3. sharding-sphere按月动态分表
  4. Dart的套接字与web套接字
  5. Web前端面试指导(十四):如何居中一个元素(正常、绝对定位、浮动元素)?
  6. 黑马day11 脏读数据amp;解
  7. 常用电阻E24,E96阻值速查
  8. java 调用百度语音
  9. 交换芯片CPSS-MARVELL 98DXX交换处理流程
  10. mysql数据库西里尔文乱码_使用Python从MySQL读取西里尔文utf8符号不正确
  11. 芯片加密与解密技术方法
  12. 人人都道RAZ好,我读了400多本之后,才明白哪里好
  13. 操作系统OS-Lab2-FAT12文件读取
  14. booting from hard disk
  15. 奇瑞新能源掌门人鲍思语:未来将迈进大车市场
  16. Vue复习笔记 (二)SPA单页面应用(优化首屏加载)
  17. 'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。
  18. NiFi 常用处理器(Processor)介绍
  19. Ubuntu tcpdump详解
  20. LabVIEW学习笔记十三:窗格详解(调整窗格大小时缩放特定对象)

热门文章

  1. java web 集成dom4j_[JavaWeb基础] 031.dom4j写入xml的方法
  2. zabbix监控linux网卡流量,zabbix实现linux流量变化率监控
  3. android中gradle的作用,Gradle 之 Android 中的应用
  4. matlab 神经网络dpi,基于DPI和BP神经网络的P2P流量识别研究
  5. java encode 空格_javaWeb中URLEncoder.encode空格问题
  6. python装饰器带参数函数二阶导数公式_一文搞定Python装饰器,看完面试不再慌
  7. JAVA MYSQL从数据库中提取图片_java web将图片存到储数据库和从数据库中读取图片...
  8. 关于ubuntu自定义service服务时找不到/usr/lib/systemd/system目录的问题
  9. RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc
  10. android双联动列表,Android Fragment实现列表和内容联动