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. Java中,如何跳出当前的多重嵌套循环

    在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环.(Java中支持带标签的break和continue语句)

  2. HTML&CSS 问题

    1.子div使用浮动,父div高度自适应(个人感觉好用) 方法: css: <style> .clear{ clear:both} </style> html:在父div关闭之 ...

  3. OC - 时间日期类NSDate

    OC - 时间日期类NSDate //NSDate 时间日期类 NSDate 二进制数据流 { //1.获取当前时间 零时区的时间 //显示的是格林尼治的时间: 年-月-日 时:分:秒:+时区 NSD ...

  4. UICollectionView reloadItemsAtIndexPaths时 报错

    在刷新下载进度时 Xcode报错误: Terminating app due to uncaught exception 'NSInternalInconsistencyException', rea ...

  5. Office365完整离线安装包下载及自定义安装教程

    Office 365是微软打造的一款适用于教育机构使用的office办公软件,这里为大家提供了一个Office 365离线安装包下载工具,让office 365离线包下载到本地再安装,而不是联网下载安 ...

  6. Web Services简单介绍

    Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...

  7. go加密算法:CBC对称加密(一)--DES

    package main import ( "bytes" //"crypto/aes" "crypto/cipher" "cry ...

  8. Redis(三):Redis数据类型

    Redis数据类型目录导航: Redis五大数据类型 哪里去获取Redis常见数据类型操作命令 Redis键(Key) Redis字符串(String) Redis列表(List) Redis集合(S ...

  9. st link 连接问题ST LINK is not in the DFU mode plesse restart it

    原因:插上st link后做了一些操作才点击升级.如点击了连接stlink,如下图等: 解决办法: 1. 拔掉stlink 2. 插上stlink 3. 不要点其他的,直接点击ST-LINK-> ...

  10. Solr第二讲——SolrJ客户端的使用与案例

    一.Solrj的使用 1.什么是Solrj solrj是访问Solr服务的java客户端(就像通过jedis操作redis一样),提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过Sol ...