Python正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。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。

Python正则表达式_第1张图片
Paste_Image.png

ma=re.match(r,'.','0') ma.group() 结果为0.中间的点表示可以匹配任意一个字符。

Python正则表达式_第2张图片
Paste_Image.png
Python正则表达式_第3张图片
Paste_Image.png
Python正则表达式_第4张图片
Paste_Image.png

Python正则表达式_第5张图片
Paste_Image.png

加*表示紧挨着的字符出现0次或n次。
Python正则表达式_第6张图片
Paste_Image.png

下图所示正则表达式意思是:匹配下划线开头的字母串,和以下划线开头的任意字符串,+表示可以出现0次到无限次。
Python正则表达式_第7张图片
Paste_Image.png

匹配163邮箱
Python正则表达式_第8张图片
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次,所以+?只匹配一次。
Python正则表达式_第9张图片
Paste_Image.png

Python正则表达式_第10张图片
Paste_Image.png

和$表示强匹配,必须以和$之间的字符串匹配才会返回结果。
Python正则表达式_第11张图片
Paste_Image.png

\A表示必须以某字符串(比如下图imooc)开头,\Z表示必须以什么结尾
Python正则表达式_第12张图片
Paste_Image.png

Python正则表达式_第13张图片
Paste_Image.png

实现匹配163或者126()实现了分组


Python正则表达式_第14张图片
Paste_Image.png
Python正则表达式_第15张图片
Paste_Image.png

通过search方法实现字符串的匹配


Python正则表达式_第16张图片
Paste_Image.png

search查找字符串只能查找出一个,findall则可以找出全部的。


Python正则表达式_第17张图片
Paste_Image.png

通过sum函数可以实现列表中的元素加和。
Paste_Image.png

string表示被替换的字符串,repl表示替换为的字符串或者函数返回的字符串。
Python正则表达式_第18张图片
Paste_Image.png
Python正则表达式_第19张图片
Paste_Image.png
Python正则表达式_第20张图片
Paste_Image.png

正则表达式表示使用:或空格,或逗号。“|”表示或者


Python正则表达式_第21张图片
Paste_Image.png

你可能感兴趣的:(Python正则表达式)