1 / 16
文档名称:

python正则表达式 深入浅出.doc

格式:doc   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

python正则表达式 深入浅出.doc

上传人:zbfc1172 2013/1/9 文件大小:0 KB

下载得到文件列表

python正则表达式 深入浅出.doc

文档介绍

文档介绍:python的正则表达式 re
延伸阅读:python的内建函数和 subprocess 。此文是本系列的第三篇文章了,和之前一样,内容出自官方文档,但是会有自己的理解,并非单纯的翻译。所以,如果我理解有误,欢迎指正,谢谢。
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮。
正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义。这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解。比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\。
你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r'\n'这个字符串就是一个反斜杆加上一字母n,而'\n'我们知道这是个换行符。因此,上面的'\\\\'你也可以写成r'\\',这样,应该就好理解很多了。可以看下面这段:
>>> import re
>>> s = '\x5c' #0x5c就是反斜杆
>>> print s
\
>>> ('\\\\', s) #这样可以匹配
< object at 0xb6949e20>
>>> (r'\\', s) #这样也可以
< object at 0x80ce2c0>
>>> ('\\', s) #但是这样不行
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/", line 137, in match
return _compile(pattern, flags).match(string)
File "/usr/lib/", line 245, in _compile
raise error, v # invalid expression
: bogus escape (end of line)
>>>
另外值得一提的是,re模块的方法,大多也就是RegexObject对象的方法,两者的区别在于执行效率。这个在最后再展开吧。
正则表达式语法
正则表达式(RE)指定一个与之匹配的字符集合;本模块所提供的函数,将可以用来检查所给的字符串是否与指定的正则表达式匹配。
正则表达式可以被连接,从而形成新的正则表达式;例如A和B都是正则表达式,那么AB也是正则表达式。一般地,如果字符串p与A匹配,q与B匹配的话,那么字符串pq也会与AB匹配,但A或者B里含有边界限定条件或者命名组操作的情况除外。也就是说,复杂的正则表达式可以用简单的连接而成。
正则表达式可以包含特殊字符和普通字符,大部分字符比如'A','a'和'0'都是普通字符,如果做为正则表达式,它们将匹配它们本身。由于正则表达式可以连接,所以连接多个普通字符而成的正则表达式last也将匹配'last'。(后面将用不带引号的表示正则表达式,带引号的表示字符串)
下面就来介绍正则表达式的特殊字符:
'.'
点号,在普通模式,它匹配除换行符外的任意一个字符;如果指定了 DOTALL 标记,匹配包括换行符以内的任意一个字符。
'^'
尖尖号,匹配一个字符串的开始,在 MULTILINE 模式下,也将匹配任意一个新行的开始。
'$'
美元符号,匹配一个字符串的结尾或者字符串最后面的换行符,在 MULTILINE 模式下,也匹配任意一行的行尾。也就是说,普通模式下,foo.$去搜索'foo1\nfoo2\n'只会找到’foo2′,但是在 MULTILINE 模式,还能找到‘foo1′,而且就用一个$ 去搜索'foo\n'的话,会找到两个空的匹配:一个是最后的换行符,一个是字符串的结尾,演示:
>>> ('(foo.$)', 'foo1\nfoo2\n')
['foo2']
>>> ('(foo.$)', 'foo1\nfoo2\n', )
['foo1', 'foo2']
>>> ('($)', 'foo\n')
['', '']
'*'
星号,指定将前面的RE重复0次或者任意多

最近更新

洋河水库营养盐及藻类对水动力条件的响应 2页

一种可灵活拆装吊的制造方法 6页

四年级上语文教案9满山的灯笼火把语文S版 6页

一种机械气力组合内充种式玉米精量排种器的制.. 10页

初中物理知识记忆顺口溜 8页

河北煤炭科学研究院重介质厂技术路线图研究 2页

汽车驾驶环境中的鲁棒性语音识别 2页

汽车前轮罩拉深成形工艺研究 2页

生物质能源生产与土壤肥力维持 35页

船舶制造与修理业的绿色转型 33页

水溶性槲皮素衍生物的合成 2页

民办高校大学生闲暇时间利用的现状及教育对策.. 2页

武汉钢铁集团安全管理现状评估研究 2页

槟榔废水处理方法的实验研究 2页

棉铃虫性信息物质多组分功能作用机理研究 2页

桥头跳车防治与高延性纤维混凝土连续耐久桥头.. 2页

核电级高纯硼酸的制备工艺研究 2页

某大型商场能耗分析与系统优化 2页

构建电信行业客户价值模型及客户价值提升策略.. 2页

来安县物流产业与经济增长关系研究 2页

机电设备监测终端的设计 2页

木薯挖掘铲结构参数的优化研究 2页

认位置课后反思(6篇) 9页

中国科学院昆明植物研究所 4页

2022年乡镇公务员干部入党申请书范文 3页

减肥的数学建模 15页

危急心律失常的识别及处理 89页

有限元分析实验报告(共16页) 16页

志愿填报专题讲座136页文档 136页

我国企业年金基金管理与风险分析 4页