IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python中的re模块 -> 正文阅读

[Python知识库]python中的re模块

re模块有三个比较重要的方法

  • findall
  • search
  • match

findall

findall 返回足所有满足匹配条件的,放在列表中

ret = re.findall('ea','recover search beauty www')
print(ret)
#得到结果['ea', 'ea']

??

ret = re.findall('www.(baidu|zhihu).com','www.zhihu.com')
print(ret)
# 得到结果 ['zhihu'],这是因为findall 会优先把匹配结果里的内容返回,如果想要匹配结果,取消权限即可

ret = re.findall('www.(?:baidu|zhihu).com','www.zhihu.com')
print(ret)
# 得到结果 ['www.zhihu.com']

search

search? 从前向后找到一个就返回,返回的时候,返回一个结果的对象(相当于变量),返回的变量需要调用group才能拿到结果;找不到就返回None,调用group就会报错

通常使用方法

import re
ret = re.search('a','eva yang beauty')
if ret:
    print(ret.group())
ret = re.search('[1-9](\d{14})(\d{2}[0-9x]?$)','110101199912098767')
print(ret.group())
print(ret.group(1))
print(ret.group(2)) #可以拿到分组里的值
#得到结果
#110101199912098767
#10101199912098
#767

match

match 是从头开始匹配,如果正怎规则从头开始,可以匹配上,就可以返回一个变量,匹配的内容也需要用group才能拿到结果,找不到就返回None,调用group就会报错

ret = re.match('a','eva yang beauty')
if ret:
    print(ret.group())

#结果,不会打印出任何东西

ret1 = re.match('ev','event yang beauty')
if ret1:
    print(ret1.group())

#结果,ev

ret2 = re.match('[a-z]+','event yang beauty')
if ret2:
    print(ret2.group())

#结果,event

其余的方法

re.split

re模块中的分割,如果有两个匹配,先按前面的分割一次,再按后面的分割一次

import re
ret = re.split('a','abcde')
print(ret)
# 结果['', 'bcde']

ret1 = re.split('[ab]','abcde')
print(ret1)
# 结果['', '', 'cde']

??

ret = re.split('\d+','beauty31hello4word6')
print(ret) #结果['beauty', 'hello', 'word', '']

ret = re.split('(\d+)','beauty31hello4word6')
print(ret) #结果['beauty', '31', 'hello', '4', 'word', '6', '']

# 在匹配部分加上()之后所切出的结果是不同的
# 没有()的结果没有保留所匹配的项,但是有()的却能保留了匹配的项
# 这个在默写需要保留匹配部分的使用过程中非常重要

re.sub

将目标替换成对应的值,可设置多少次

ret = re.sub('\d','H','Hello,beauty40yuan4a5dd',2)
print(ret)
#结果 Hello,beautyHHyuan4a5dd ,将数字替换成'H',被替换了两次

re.subn

将目标替换成对应的值,返回元祖(替换的结果,替换了多少次)

ret = re.subn('\d','H','Hello,beauty40yuan4a5dd')
print(ret)
#结果('Hello,beautyHHyuanHaHdd', 4)

re.compile

将正则表达式编译成为一个正则表达式的对象,

import re
obj = re.compile('\d{3}') #匹配3个数字
ret = obj.search('abcdefg1234567wwwwee3er2')
if ret:
    print(ret.group())
#结果是123

re.finditer

返回一个存放匹配结果的迭代器

ret = re.finditer('\d','adbc12345678')
print(ret)
print(next(ret).group()) #查看第一个结果
print(next(ret).group()) #查看第二个结果
print(next(ret).group()) #查看第三个结果
for i  in ret:
    print(i.group())

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 23:57:56  更:2021-07-24 23:58:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 3:00:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码