re模块是Python的标准库模块

模块正则接口的整体模式

re.compile 返回regetx对象

finditer fullmatch match search 返回 match对象

match.属性|方法

 

re模块的使用:

regex = re.compile(pattern,flags = 0)

功能 :

生成正则表达式对象

参数 :

pattern     正则表达式

flags  功能标志位,丰富正则表达式的匹配

返回值:

返回一个正则表达式对象

re.findall(pattern,string,flags = 0)

功能 :

根据正则表达式匹配目标字串内容

参数 :

pattern     正则表达式

string      目标字符串

返回值:

列表 里面是匹配到的内容

如果正则表达式有子组,则只返回子组中的内容

regex.findall(string,pos,endpos)

功能 :

根据正则表达式匹配目标字串内容

参数 :

string      目标字符串

pos,endpos : 截取目标字符串的起止位置进行匹              配,默认是整个字符串

返回值:

列表 里面是匹配到的内容

如果正则表达式有子组,则只返回子组中的内容

re.split(pattern,string,flags = 0)

功能 :

通过正则表达式切割目标字符串

参数 :

pattern     正则

string      目标字串

返回值 :

以列表形式返回切割后的内容

re.sub(pattern,replace,string,max,flags)

功能:

替换正则表达式匹配内容

参数:

pattern     正则

replace     要替换的内容

string      目标字符串

max         设定最多替换几处

返回值 :

替换后的字符串

re.subn(pattern,replace,string,max,flags)

功能和参数同sub

返回值多一个实际替换了几处

re.finditer(pattern,string,flags)

功能:

使用正则匹配目标字串

参数:

pattern     正则

string      目标字串

返回值:

迭代对象 ----》 迭代内容为match对象

re.fullmatch(pattern,string,flags)

功能 :

完全匹配一个字符串

参数:

pattern     正则

string      目标字串

返回值:

match对象,匹配到的内容

re.match(pattern,string,flags)

功能 :

匹配一个字符串起始内容

参数:

pattern     正则

string      目标字串

返回值:

match对象,匹配到的内容

re.search(pattern,string,flags)

功能 :

匹配第一个符合条件的字符串

参数:

pattern     正则

string      目标字串

返回值:

match对象,匹配到的内容

regex 对象的属性

flags           标志位数值

pattern         正则表达式

groups          子组个数

groupindex      获取捕获组字典,键为组名值是第几组

match对象属性:

match.string        表示目标字符串的开始位置

match.pos           表示目标字符串的结束位置

match.re            表示对象生成正则表达式

match.endpos        目标字符串

match.lastindex     最后一个分组是第几组

match.lastgroup     最后一组的名称(捕获)

match对象方法:

match.span()        返回匹配到内容的开始结束位置元组

match.start()       返回匹配到内容的开始位置

match.end()         返回匹配到内容的结束位置

match.groups()      返回所有子组匹配到的内容

match.groupdict()   返回捕获组字典键:捕获名 值:内容

group(n=0)

功能:

获取match对象对应的匹配内容

参数:

默认为0 表示获取整体的匹配内容

如果赋值1,2,3。。。表示获取第n个子组匹配到的内容

返回值:

返回获取到的内容字串

 
# regex1.py
import re pattern = r"(?P<dog>ab)cd(?P<pig>ef)"
# 生成正则表达式对象
regex = re.compile(pattern) s = "abcdefghfkfdafsabcdefjsaavjhcabca"
# 获取mtach对象
obj = regex.search(s, 0, 8) # 设置开始位置结束位置 # print(len(s)) # match对象属性
print(obj.pos) # 目标字符串的开始位置
print(obj.endpos) # 目标字符串的结束位置
print(obj.re) # 正则表达式对象  re.compile('(?P<dog>ab)cd(ef)')
print(obj.string) # 目标字符串
print(obj.lastindex) # 最后一个分组是第几组
print(obj.lastgroup) # 最后一组的名称 # match对象方法
print(obj.span()) # 匹配到内容的起止位置
print(obj.start()) # 匹配到的内容开始位置
print(obj.end()) # 匹配到的内容结束位置
print(obj.groups()) # 所有子组匹配到的内容
print(obj.groupdict()) # 捕获组字典 键:捕获名 值:内容 print(obj.group())
print(obj.group(2))
# group(n=0)
# 功能:
# 获取match对象对应的匹配内容
# 参数:
# 默认为0 表示获取整体的匹配内容
# 如果赋值1,2,3。。。表示获取第n个子组匹配到的内容
# 返回值:
# 返回获取到的内容字串

flags参数:

re.compile

re.findall

re.search

re.match

re.finditer

re.fullmatch

re.split

re.sub

作用:

辅助正则表达式,扩展丰富的匹配内容、

regex = re.compile(r"Hello", re.I)  # 忽略字母大小写

I == IGNORECASE     忽略字母大小写

S == DOTALL         让元字符 . 能够匹配到\n

M == MULTILINE      让元字符 ^ $ 能够匹配每一行的开头和结尾

X == VERBOOS        能够为正则添加注释

flags传递多个参数时可以用 按位或: | 链接

import re 

# 忽略字母大小写
regex = re.compile(r'hello',re.I) # l = regex.findall('hello Hello')
# print(l) s = '''hello world
nihao Beijing'''
# 让.能够匹配换行符
l = re.findall(r'.+',s,re.S)
print(l)
# 匹配每一行
obj = re.search(r"world$",s,re.M)
print(obj.group()) # re自带注释方法
pattern = r"""(?P<dog>\w+) #dog组
\s+ #匹配任意多个空格
(\W+) #匹配一些特殊字符
""" #添加注释同时忽略大小写
s = re.match(pattern,'hello %#@',re.X | re.I).group()
print(s)

Python全栈 正则表达式(re模块正则接口全方位详解)的更多相关文章

  1. Python全栈开发之8、装饰器详解

    一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了.转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5486253.html 一.装饰器 装饰器可以使函数执 ...

  2. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  3. python全栈开发-logging模块(日记专用)

    一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,l ...

  4. Python全栈day21-22-23(模块)

    一,python的模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  5. python全栈开发-常用模块的一些应用

    一.random模块详解 1.概述 首先我们看到这个单词是随机的意思,他在python中的主要用于一些随机数,或者需要写一些随机数的代码,下面我们就来整理他的一些用法 2.常用方法 1. random ...

  6. 关于python中的包,模块导入的问题详解(一)

    最近由于初学python,对包,模块的导入问题进行了资料的搜集,查阅,在这里做一个总结: 一: import 模块 在import的过程中发生了什么?我们用一个实验来说明: 以上截图表明:在impor ...

  7. Python全栈 正则表达式(概念、、语法、元字符、re模块)

    前言:        普通人有三件东西看不懂:医生的处方,道士的鬼符,程序员得正则表达式       什么是正则表达式? 正则表达式,又称规则表达式,英文名为Regular Expression,在代 ...

  8. Python全栈开发【re正则模块】

    re正则模块 本节内容: 正则介绍 元字符及元字符集 元字符转义符 re模块下的常用方法 正则介绍(re) 正则表达式(或 RE)是一种小型的.高度专业化的编程语言. 在Python中,它内嵌在Pyt ...

  9. python全栈开发-re模块(正则表达式)应用(字符串的处理)

    一.概述 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,要讲他的具体用法要讲一本书!它内嵌在Python中,并通过 re 模块实现.你可以为想要匹配的相应字符串集指定规则:该 ...

随机推荐

  1. 上传组件uploadify在spring中返回406 / Not Acceptable 问题解决

    这个问题在chrome中正常.在火狐和ie中就会报这个错误. 原因就是chrome的accept是*/* 火狐和ie的accept是text/* 但是spring的accept清单中是没有text/* ...

  2. PCB测试点的设计要求

    测试点的设计要求:1.定位孔采用非金属化的定位孔 ,误差小于0.05mm.定位孔周围3mm不能有元件.2.测试点直径不小于0.8mm,测试点之间的间距不小于1.27mm,测试点离元件不小于1.27mm ...

  3. 绘图驱动-OSD原理2

    转载自:http://blog.pfan.cn/programming/21209.html 现在已经可以通过修改存储单元内容来改变OSD的像素,但还有个关键的问题是如何根据需要来进行操作,即如何将某 ...

  4. qsort()与sort的用法(收藏)

    sort()函数是C++中的排序函数其头文件为:#include<algorithm>头文件: qsort()是C中的排序函数,其头文件为:#include<stdlib.h> ...

  5. 由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想

    0x00--目的 整理一下以前一个SYSTEM表空间和SYSAUX表空间使用率达到99%上限的处理思路和相关知识点,好记性不如烂笔头 0x01--表空间使用率现状 通过查询可得知目前表空间使用情况如下 ...

  6. Linux Mysql 卸载

    Linux下mysql的卸载: 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的两个包: mysql-4.1.12-3.RHEL4.1 mysql ...

  7. mysql对查出来的值,在sql里面拼接我们想要拼接的内容

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  8. Django忘记超级用户密码||账号

    第一步:运行django shell python3 manage.py shell 第二步:重设密码 >>> from django.contrib.auth.models imp ...

  9. s3c2440中断控制器操作

    一.ARM中断体系结构 arm有7中异常工作模式 用户模式.快中断模式.管理模式.数据访问终止模式.中断模式.系统模式.未定义指令终止模式. 几种模式有什么不同呢, 1.不同的寄存器 2.不同的权限 ...

  10. python教程(二)·数据结构初探

    这一节,我来简单讲讲python自带的数据结构. 列表(list) 列表是常用的python数据结构,类似于C语言的数组,用来存储多个元素,与之不同的是,C语言的数组中的元素的类型是相同的,而列表可以 ...