Python正则表达式字符串的匹配、替换、分割、查找方式

 更新时间:2023年07月07日 09:56:24   作者:pNull  
这篇文章主要介绍了Python正则表达式字符串的匹配、替换、分割、查找方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python正则表达式字符串匹配、替换、分割、查找

1、search(pattern, string, flags=0)      在一个字符串中查找匹配

2、findall(pattern, string ,flags=0)     找到匹配,返回所有匹配部分的列表

3、sub(pattern, repl, string , count=0, flags=0)    将字符串中匹配正则表达式的部分替换为其他值

4、split(pattern, string ,maxsplit=0, flags=0)  根据匹配分割字符串,返回分隔符串组成的列表

用法:

In [1]: import re  
In [2]: str1='imooc video=1000'  
In [3]: str1.find('1000')#可以查找出索引值  
Out[3]: 12  
In [4]: str1='imoocvideo=1000'  
In [5]: str1.find('1000')  
Out[5]: 11  
In [6]: info=re.search(r'\d+',str1)#'\d'代表任意一个数字,'+'可以匹配数字一次或者无限次,只能匹配最前面的  
In [7]: info  
Out[7]: <_sre.SRE_Match at 0xb6bf9b48>  
In [8]: info.group()  
Out[8]: '1000'  
In [1]: import re  
In [2]: str1='java=1000,python=9090'  
In [3]: info=re.findall(r'\d+',str1)#找到所有匹配的字符串,并把它们放到一个列表中  
In [4]: info  
Out[4]: ['1000', '9090']  
In [5]: sum([int(x) for x in info])  
Out[5]: 10090  
In [25]: def add1(match):#传入的match是一个字符串对象,  
   ....:     val=match.group()#匹配的字符串  
   ....:     num=int(val)+1 #强制转换  
   ....:     return str(num)#强制转化  
   ....:  
In [28]: info=re.sub(r'\d+',add1,str4)#sub就是替换字符串和函数  
In [29]: info  
Out[29]: 'python video =10001'  
In [35]: str6='imooc:java c++ python c#'  
 In [36]: re.split(r':| ',str6)#split用来分割字符串,':|'的意思是只要看见冒号和空格就会分割成一部分  
Out[36]: ['imooc', 'java c++ python c#']  
In [37]: re.split(r':| ',str6)  
Out[37]: ['imooc', 'java', 'c++', 'python', 'c#']  

Python字符串及正则表达式

字符串可以用单引号或双引号来创建

也可以用三引号来创建多行字符串

String_1 = '加快发展'
String_2 = "促进生产"
String_3 = """吾家吾国,
吾家吾国,
吾家吾国,
吾家吾国。"""

字符串匹配函数

re.match函数(起始位置匹配成功才算成功)

  • re.match("匹配的正则表达式","要匹配的字符串","控制正则表达式的匹配方式").span()
  • re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 None。

 

re.search(扫描整个字符串并返回第一个成功的匹配)

re.search('要匹配的正则表达式','要匹配的字符串','标志位(同上)').span()

扫描整个字符串并返回第一个成功匹配,span会使结果为第一个成功匹配的位置索引

re.match 和 re.search的区别

re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None;而 re.search 匹配整个字符串,直到找到一个匹配。

re.sub(替换字符串中的匹配项)

re.sub(pattern, repl, string, count=0, flags=0)
  • pattern: 正则表达式中模式字符串
  • repl: 替换的字符串,也可为一个函数
  • string: 要被查找替换的原始字符串
  • count: 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配

recompile 函数

compile 函数用于编译正则表达式,生成一个正则表达对象,供 match() 和 search() 这两个函数使用。

re.compile(pattern[,flags])
  • pattern:一个字符串形式的正则表达式
  • flags:匹配模式,可选可不选

findall函数

findall("待匹配的字符串","指定字符串的起始位置","指定字符串的结束位置")

起始位置与结束位置可选可不选

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 学会迭代器设计模式,帮你大幅提升python性能

    学会迭代器设计模式,帮你大幅提升python性能

    这篇文章主要介绍了python 迭代器设计模式的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python第三方库的安装方法总结

    Python第三方库的安装方法总结

    库library是一个泛称,一般值作为文件形式存在的模块以及以文件夹形式存在的包的合成,这里作了Python第三方库的安装方法总结,包括源码安装、包管理器安装以及虚拟环境相关安装三种方式的讲解
    2016-06-06
  • 像线程一样管理进程的Python multiprocessing库

    像线程一样管理进程的Python multiprocessing库

    multiprocessing库是基于threading API,它可以把工作划分为多个进程.有些情况下,multiprocessing可以作为临时替换取代threading来利用多个CPU内核,相应地避免Python全局解释器锁所带来的计算瓶颈.本文详细介绍了Python multiprocessing库,需要的朋友可以参考下
    2021-05-05
  • Pandas中Concat与Append的实现与区别小结

    Pandas中Concat与Append的实现与区别小结

    本文主要介绍了Pandas中Concat与Append的实现与区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Python的历史与优缺点整理

    Python的历史与优缺点整理

    在本篇文章里小编给大家分享的是关于Python优缺点及基础知识点整理内容,有需要的朋友们可以参考下。
    2020-05-05
  • 在pycharm 中添加运行参数的操作方法

    在pycharm 中添加运行参数的操作方法

    今天小编就为大家分享一篇在pycharm 中添加运行参数的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python使用pandas进行量化回测

    python使用pandas进行量化回测

    这篇文章主要介绍了python使用pandas进行量化回测,文章围绕pandas进行量化回测的相关资料展开简单内容,文章内容可以做一些比较简单的技术指标测试,需要的朋友可以参考一下
    2022-03-03
  • Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    这篇文章主要介绍了Python3.5内置模块之os模块、sys模块、shutil模块用法,结合实例形式分析了Python os模块、sys模块及shutil模块针对文件、路径等相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • OpenCV实现常见的四种图像几何变换

    OpenCV实现常见的四种图像几何变换

    这篇文章主要介绍了利用OpenCV实现的四种图像几何变换:缩放、翻转、仿射变换及透视。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编学习一下
    2022-04-04
  • 使用Python实现一个简单的文件搜索引擎

    使用Python实现一个简单的文件搜索引擎

    这篇文章主要为大家详细介绍了Python中文件操作的基础和进阶知识并基于以上知识实现了一个简单的文件搜索引擎,感兴趣的小伙伴可以参考一下
    2024-05-05

最新评论