在Python普通字符串中
在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如
In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defg In [2]: print('abc\tdef') # '\t'具有制位符的作用 abc defg
我们还可以用'\'来转义特殊字符,使其成为普通字符,比如
In [3]: print('abc\\tdef') # 使'\'成为一个普通的字符,没有转义作用 abc\tdef In [4]: print('abc\'tdef') # 使'''成为一个普通的字符,不再需要和另一半单引号'''配对 abc'tde
所以,在python普通字符串中,我们不能以奇数个'\'结尾,这样会导致结束的的引号转义成一个纯字符,从而使得这段字符串没有引号来结束。
在Python原生字符串中
我们在字符串前加一个'r'来表示原生字符串,比如r'abc'。原生字符串中的特殊字符的特殊含义将会被剥夺掉,如下
In [5]: print(r'abc\ndefg') # '\n'没有换行的作用,仅仅是一个普通的字符串 abc\ndefg In [6]: print(r'abc\tdefg') # '\t'没有制位符的作用,仅仅是一个普通的字符串 abc\tdef
这里有一个奇怪的问题,在原生字符串中,虽然'\'成为了一个普通的字符串,但我们同样不能以奇数个'\'字符串结尾,这是因为Python正则表达式的原因,在正则表达式中我们将会解释这个问题。
在Python(regular express)正则表达式中
Python正则表达式中会有一些不同,正则表达式中指定了一些元字符(metacharacter),如下
. ^ $ * + "htmlcode">In [7]: re.search('.', 'sd.f') Out[7]: <_sre.SRE_Match object; span=(0, 1), match='s'> In [8]: re.search('\.', 'sd.f') Out[8]: <_sre.SRE_Match object; span=(2, 3), match='.'>In [9]: re.search('\n', 'sdfd\nfds') Out[9]: <_sre.SRE_Match object; span=(4, 5), match='\n'> """ '.'作为一个元字符,它的特殊含义是匹配任意一个字符,而当我们在其前面加'\'后,它的特殊含义消失了,匹配到的是'.';而且'\'依然可以把Python中某些字符转义成特殊字符。 """所以,'\'的作用是剥夺元字符的特殊含义,使其成为一个Python字符,所以它还是会具有在Python普通字符串中的转义作用,比如'\n'依然表示换行。所以,'\'既是正则中的一个元字符,又是Python中的一个特殊字符。那么我们该如何匹配到纯字符'\'(无任何特殊意义)?
在正则中,'\'的作用是把元字符转义成Python字符串文字(a Python string literal),所以正则中的'\\'其实是其实是Python字符中的'\',它仍然还具有转义作用,所以在正则中我们还得对每个'\'再进行转义一次,即'\\\\',这样就可以匹配到纯字符'\'了。看下面例子
In [10]: re.search('\\\\', 'fsd\nfds') # 目标字符串中没有纯字符'\',所以匹配为空 In [11]: re.search('\\\\', 'fsd\\nfds') Out[11]: <_sre.SRE_Match object; span=(3, 4), match='\\'> # Python字符串中,'\\'就是纯字符'\'在re中反复的使用'\',这可能会生成大量的连续的反斜杠,从而导致某些字符串难以理解。解决的办法是用Python原生字符串来书写正则表达式,如下
In [12]: re.search(r'\\', 'fsd\\nfds') # 两个'\\'就可以匹配到纯字符'\' Out[12]: <_sre.SRE_Match object; span=(3, 4), match='\\'>另外,当我们用原生字符串来书写正则表达式时,Python字符中的特殊字符依然有效,比如
In [13]: re.search(r'\n', 'fsd\nfds') Out[13]: <_sre.SRE_Match object; span=(3, 4), match='\n'> """ 在Python字符中,r'\n'仅仅表示纯字符串'\n',没有换行的作用;在正则中,r'\n'依然还有换行的作用。所以此时我们不能用奇数个'\'来结尾某个正则表达式,这样导致结束的引号被转义成一个纯字符,无结束符号。所以,在Python原生字符串中,我们也同样规定不能用奇数个'\'来结尾。 """以上就是本次介绍的全部知识点内容,感谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]