Python原始字符串(rawstrings)⽤法实例
本⽂实例讲述了Python原始字符串(raw strings)⽤法,分享给⼤家供⼤家参考。具体如下:
Python原始字符串的产⽣正是由于有正则表达式的存在。原因是ASCII 字符和正则表达式特殊字符间所产⽣的冲突。⽐如,特殊符号“\b”在ASCII 字符中代表退格键,但同时“\b”也是⼀个正则表达式的特殊符号,代表“匹配⼀个单词边界”。
为了让RE 编译器把两个字符“\b”当成你想要表达的字符串,⽽不是⼀个退格键,你需要⽤另⼀个反斜线对它进⾏转义,即可以这样写:“\\b”。
但这样做会把问题复杂化,特别是当你的正则表达式字符串⾥有很多特殊字符时,就更容易令⼈困惑了。⼀般来说,原始字符串经常被⽤于简化正则表达式的复杂程度。
事实上,很多Python 程序员在定义正则表达式时都只使⽤原始字符串。
下⾯的例⼦⽤来说明退格键“\b” 和正则表达式“\b”(包含或不包含原始字符串)之间的区别:
复制代码代码如下:
>>> m = re.match('\bblow', 'blow') # backspace, no match #退格键,没有匹配>>> if m is not None: m.group()
...
>>> m = re.match('\\bblow', 'blow') # escaped \, now it works #⽤\转义后,现在匹配了
>>> if m is not None: m.group()
...
'blow'
>>> m = re.match(r'\bblow', 'blow') # use raw string instead #改⽤原始字符串>>> if m is not None: m.group()
...
'blow'
你可能注意到我们在正则表达式⾥使⽤“\d”,没⽤原始字符串,也没出现什么问题。那是因为ASCII ⾥没
有对应的特殊字符,所以正则表达式编译器能够知道你指的是⼀个⼗进制数字。
原始字符串的这个特性让⼀些⼯作变得⾮常的⽅便,⽐如正则表达式的创建。正则表达式是⼀些定义了⾼级搜索匹配⽅式的字符串,通常是由代表字符、分组、匹配信息、变量名和字符类等的特殊符号组成。正则表达式模块已经包含了⾜够⽤的符号。但当你必须插⼊额外的符号来使特殊字符表现的像普通字符的时候,你就陷⼊了“字符数字”的泥潭!这时原始字符串就会派上⽤场了。
除了原始字符串符号(引号前⾯的字母“r”)以外,原始字符串跟普通字符串有着⼏乎完全相同的语法。这个'r'可以是⼩写也可以是⼤写,唯⼀的要求是必须紧靠在第⼀个引号前。在3个例⼦的第1个例⼦⾥⾯,我们需要⼀个反斜杠加⼀个“n”来⽽不是⼀个换⾏符。
复制代码代码如下:
>>> '\n'
'\n'
>>> print '\n'
>>> r'\n'
'\\n'
>>> print r'\n'
\n
接下来的例⼦⾥,我们打不开我们的README⽂件了,为什么?因为'\t'和'\r'被当成不在我们的⽂件名中的特殊符号,但它们实际上是⽂件路径中的4个独⽴的字符。
复制代码代码如下:
>>> f = open('C:\windows\', 'r') Traceback (most recent call last):
File "", line 1, in ?
f = open('C:\windows\', 'r')IOError: [Errno 2] No such file or directory: 'C:\\win- dows\\'
>>> f = open(r'C:\windows\', 'r')>>> f.readline()
'Table of Contents (please check timestamps for last update!)\n'
默认字符串是什么>>> f.close()
希望本⽂所述对⼤家的Python程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。