Python 正则表达式(高级用法)- search、findall、sub 、split

2024-08-21 04:58

本文主要是介绍Python 正则表达式(高级用法)- search、findall、sub 、split,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

仅供学习,转载请注明出处

re模块的高级用法

search

需求:匹配胖子老板说出的香烟价格

In [95]: re.search(r"\d+","胖子老板:一包蓝利群17元啦").group()                      
Out[95]: '17'In [96]:  

findall

前面寻找smoke的故事中,我用来最终解决胖子老板的smoke次数寻找问题。
因为findall找出来返回的是一个list,那么只要用len()方法就可以知道次数了。

In [96]: str1 = "asdjkasldkjsmokelaksjdklasjdlasmokel;kajsdlkjasdsmoke"              In [97]: ret = re.findall(r"smoke",str1) In [100]: print(ret)                                                                 
['smoke', 'smoke', 'smoke']In [101]: print(len(ret))                                                            
3In [102]:  

sub 将匹配到的数据进行替换

例如将上面的smoke进行替换为hello

In [104]: ret = re.sub(r"smoke","hello",str1)                                        In [105]: print(ret)                                                                 
asdjkasldkjhellolaksjdklasjdlahellol;kajsdlkjasdhelloIn [106]:    

这种替换在爬虫的时候,我经常用来拼接替换图片的url地址这类的事项。

还有一个有趣的方式,修改的地方可以使用函数方法,如下:

需求:将匹配到的 整数+1

#coding=utf-8
import redef add(temp):strNum = temp.group()num = int(strNum) + 1return str(num)ret = re.sub(r"\d+", add, "python = 997")
print(ret)ret = re.sub(r"\d+", add, "python = 99")
print(ret)

运行结果:

python = 998
python = 100

split 根据匹配进行切割字符串,并返回一个列表

#coding=utf-8
import re# 使用冒号进行切割
In [106]: ret = re.split(r":","胖子老板:一包烟17元啦")                               In [107]: print(ret)                                                                 
['胖子老板', '一包烟17元啦']# 那么能不能根据多个条件进行切割呢?
In [108]:  # 使用 | 增加切割条件,这里我增加了 \s 空格或者tab的切割。
In [108]: ret = re.split(r":|\s","胖子老板:一包烟17元啦 肥仔白: 这么贵啊!")         In [109]: print(ret)                                                                 
['胖子老板', '一包烟17元啦', '肥仔白', '', '这么贵啊!']In [110]:     
13423234-7907ae6344e86e8a.png

关注微信公众号,回复【资料】、Python、PHP、JAVA、web,则可获得Python、PHP、JAVA、前端等视频资料。

这篇关于Python 正则表达式(高级用法)- search、findall、sub 、split的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092190

相关文章

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

Python Excel实现自动添加编号

《PythonExcel实现自动添加编号》这篇文章主要为大家详细介绍了如何使用Python在Excel中实现自动添加编号效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍简单的说,就是在Excel中有一列h=会有重复

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

Python中__new__()方法适应及注意事项详解

《Python中__new__()方法适应及注意事项详解》:本文主要介绍Python中__new__()方法适应及注意事项的相关资料,new()方法是Python中的一个特殊构造方法,用于在创建对... 目录前言基本用法返回值单例模式自定义对象创建注意事项总结前言new() 方法在 python 中是一个