python 正则表达式之转义字符

最近在整理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'\'的过程

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

以上内容转载至https://www.w3xue.com/exp/article/20197/46254.html

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

 
分类: python
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值