Python原始字符串(rawstrings)用法实例
2023-06-13 09:15:28 时间
本文实例讲述了Python原始字符串(rawstrings)用法,分享给大家供大家参考。具体如下:
Python原始字符串的产生正是由于有正则表达式的存在。原因是ASCII字符和正则表达式特殊字符间所产生的冲突。比如,特殊符号“\b”在ASCII字符中代表退格键,但同时“\b”也是一个正则表达式的特殊符号,代表“匹配一个单词边界”。
为了让RE编译器把两个字符“\b”当成你想要表达的字符串,而不是一个退格键,你需要用另一个反斜线对它进行转义,即可以这样写:“\\b”。
但这样做会把问题复杂化,特别是当你的正则表达式字符串里有很多特殊字符时,就更容易令人困惑了。一般来说,原始字符串经常被用于简化正则表达式的复杂程度。
事实上,很多Python程序员在定义正则表达式时都只使用原始字符串。
下面的例子用来说明退格键“\b”和正则表达式“\b”(包含或不包含原始字符串)之间的区别:
...
>>>m=re.match("\\bblow","blow")#escaped\,nowitworks#用\转义后,现在匹配了
>>>ifmisnotNone:m.group()
...
"blow"
>>>m=re.match(r"\bblow","blow")#userawstringinstead#改用原始字符串>>>ifmisnotNone:m.group()
...
"blow"
你可能注意到我们在正则表达式里使用“\d”,没用原始字符串,也没出现什么问题。那是因为ASCII里没有对应的特殊字符,所以正则表达式编译器能够知道你指的是一个十进制数字。
原始字符串的这个特性让一些工作变得非常的方便,比如正则表达式的创建。正则表达式是一些定义了高级搜索匹配方式的字符串,通常是由代表字符、分组、匹配信息、变量名和字符类等的特殊符号组成。正则表达式模块已经包含了足够用的符号。但当你必须插入额外的符号来使特殊字符表现的像普通字符的时候,你就陷入了“字符数字”的泥潭!这时原始字符串就会派上用场了。
除了原始字符串符号(引号前面的字母“r”)以外,原始字符串跟普通字符串有着几乎完全相同的语法。这个"r"可以是小写也可以是大写,唯一的要求是必须紧靠在第一个引号前。在3个例子的第1个例子里面,我们需要一个反斜杠加一个“n”来而不是一个换行符。
"\n"
>>>print"\n"
>>>r"\n"
"\\n"
>>>printr"\n"
\n
接下来的例子里,我们打不开我们的README文件了,为什么?因为"\t"和"\r"被当成不在我们的文件名中的特殊符号,但它们实际上是文件路径中的4个独立的字符。
File"",line1,in?
f=open("C:\windows\temp\readme.txt","r")IOError:[Errno2]Nosuchfileordirectory:"C:\\win-dows\\temp\readme.txt"
>>>f=open(r"C:\windows\temp\readme.txt","r")>>>f.readline()
"TableofContents(pleasechecktimestampsforlastupdate!)\n"
>>>f.close()
希望本文所述对大家的Python程序设计有所帮助。
相关文章
- python读取txt文件中的数组
- Python-opencv读取深度图像
- python数组拼接字符串_Python练习题——数组拼接
- python中关于命名的例子_Python 命名规范入门实例「建议收藏」
- 【说站】python中pyenv是什么
- 【说站】python应用数据科学的优势
- 【说站】python选择排序算法的性能分析
- python图像多层小波分解_Python中图像小波分解与重构以及灰度图加噪
- python lambda表达式 if_Python学习-lambda表达式
- 在python中用来安装第三方库的常用工具_什么库用于安装管理Python扩展包
- Python 生成随机数_python 随机字符串
- 正则表达式Python_python正则表达式匹配字符串
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
- python-Python与MongoDB数据库-MongoDB数据库的基本知识
- SSH代理连接器的Python代码详解编程语言
- python学习笔记之运算符详解编程语言
- Python简易操作MySQL入门教程(python操作mysql)
- Python轻松连接SQL Server数据库(python连接sqlserver)
- Python与Linux:开启互联网信息技术时代(python和linux)
- Linux下Python编程:从入门到精通(linux下python编程)
- python利用hook技术破解https的实例代码
- python线程锁(thread)学习示例
- Python群发邮件实例代码
- 爬山算法简介和Python实现实例
- python实现进程间通信简单实例
- python实现从字符串中找出字符1的位置以及个数的方法
- Python中的exec、eval使用实例
- python实现通过shelve修改对象实例