Python全栈 正则表达式(re模块正则接口全方位详解)

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)

原文地址:https://www.cnblogs.com/ParisGabriel/p/9532376.html

时间: 2024-08-01 00:55:53

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

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

一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用一个简单的装饰器来实现

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

一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 debug(), info(), warning(), error() and critical() 5个级别,其中他们级别大小关系 debug() <info() <warning() <error() <critical()  级别越低打印的日记等级就越

9、python全栈之路-模块与包

九.模块与包 http://www.cnblogs.com/Eva-J/articles/7292109.html#_label7 1.模块 1.1 什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 1.2 为何要使用模块

Python全栈开发--socketserver模块和验证客户端链接的合法性

验证客户端链接的合法性 分布式系统中实现一个简单的客户端链接认证功能 #_*_coding:utf-8_*_ from socket import * import hmac,os secret_key=b'linhaifeng bang bang bang' def conn_auth(conn): ''' 认证客户端链接 :param conn: :return: ''' print('开始验证新链接的合法性') msg=os.urandom(32) conn.sendall(msg) h=

Python全栈开发——时间模块和随机模块

#时间模块 import time import datetime print(datetime.datetime.now()) #时间戳 print(time.time()) #将时间戳转化为结构化时间 print(time.localtime(time.time())) #将结构化时间转化为时间戳 print(time.mktime(time.localtime())) #将结构化时间转化为字符串时间 strftime print(time.strftime("%Y---%m-%d %X&q

Python全栈

Linux 常用命令 Python全栈开发之1.输入输出与流程控制 Python全栈开发之2.运算符与基本数据结构 Python之实现一个简易计算器 Python之socketserver源码分析 Python全栈开发之3.数据类型set补充.深浅拷贝与函数 Python全栈开发之4.内置函数.文件操作和递归 Python全栈开发之5.几种常见的排序算法以及collections模块提供的数据结构 Python全栈开发之6.正则表达式 Python全栈开发之7.模块和几种常见模块以及format

Python全栈开发之目录

基础篇 Python全栈开发之1.输入输出与流程控制 Python全栈开发之2.运算符与基本数据结构 Python全栈开发之3.数据类型set补充.深浅拷贝与函数 Python全栈开发之4.内置函数.文件操作和递归 Python全栈开发之5.几种常见的排序算法以及collections模块提供的数据结构 Python全栈开发之6.正则表达式 Python全栈开发之7.模块和几种常见模块以及format知识补充 Python全栈开发之8.装饰器详解 Python全栈开发之9.面向对象.元类以及单例

Python全栈之路----常用模块----hashlib加密模块

加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,他把一

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth