Python正则表达式
2016-05-25 本文已影响332人
君宝儿
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
Python通过re模块提供对正则表达式的支持。使用re的一般步骤是先使用re.compile()函数,将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。
举一个简单的例子,在寻找一个字符串中所有的英文字符:
import re
pattern = re.compile('[a-zA-Z]')
result = pattern.findall('as3SiOPdj#@23awe')
print result
['a', 's', 'S', 'i', 'O', 'P', 'd', 'j', 'a', 'w', 'e']
关于语句的解释pa=re.compile(r'imooc\n')语句中前面的r表示原字符串,需要匹配的是immo\n。如果不加r,\n就会认为是换行,如果不想被认做换行符,需要写成\n。
Paste_Image.pngma=re.match(r,'.','0') ma.group() 结果为0.中间的点表示可以匹配任意一个字符。
Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png加*表示紧挨着的字符出现0次或n次。
Paste_Image.png
下图所示正则表达式意思是:匹配下划线开头的字母串,和以下划线开头的任意字符串,+表示可以出现0次到无限次。
Paste_Image.png
匹配163邮箱
Paste_Image.png
163邮箱长度在6到10之间
![Paste_Image.png](http://upload-
images.jianshu.io/upload_images/2013018-64e7b2259c96de98.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
?表示尽可能少匹配,+最少匹配1次,所以+?只匹配一次。
Paste_Image.png Paste_Image.png
和$表示强匹配,必须以和$之间的字符串匹配才会返回结果。
Paste_Image.png
\A表示必须以某字符串(比如下图imooc)开头,\Z表示必须以什么结尾
Paste_Image.png Paste_Image.png
实现匹配163或者126()实现了分组
Paste_Image.png Paste_Image.png
通过search方法实现字符串的匹配
Paste_Image.png
search查找字符串只能查找出一个,findall则可以找出全部的。
Paste_Image.png
通过sum函数可以实现列表中的元素加和。
Paste_Image.png
string表示被替换的字符串,repl表示替换为的字符串或者函数返回的字符串。
Paste_Image.png Paste_Image.png Paste_Image.png
正则表达式表示使用:或空格,或逗号。“|”表示或者
Paste_Image.png