python如何通过正则匹配指定字符开头与结束提取中间内容

 更新时间:2023年02月20日 14:58:59   作者:weixin_43890704  
这篇文章主要介绍了python通过正则匹配指定字符开头与结束提取中间内容的操作方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、提取包含始末字符

1、起始字符串固定

a = re.findall('起始字符串.*结束字符串',str)

2、起始字符串不固定(即从首字符串提取到固定的字符串结束),用^指定从首字符串开始

a = re.findall('^.*结束字符串',str)

二、不包含始末字符串

#方法1
a = re.findall('(?<=始字符串).*?(?=末字符串)',str)
#方法2
a = re.findall('始字符串(.*?)末字符串',str)

在 re.findall()的方法中 '始字符串.末字符串’ 可以匹配到相同的值直到最后一个值;如果参数为 '始字符串.?末字符串’则只匹配到第一个值。其实使用.*和.+都能提取特定始末字符串中间的内容,下面顺便说下两者的区别。

三、.*和.+正则提取的区别

.:匹配任意字符
*:匹配0个或多个字符
?:非贪婪模式,在符合的条件下,尽可能少的匹配(尽可能短的匹配)

str2 = "aabab"
a = re.findall('a.*?b',str2)	#结果:['aab', 'ab']
b = re.findall('a.+?b',str2)	#结果:['aab']

.?:匹配aab和ab ,因为可以匹配0个字符,所以可以匹配得到ab
.+?:匹配aab,因为+必须a和b中间至少有一个字符,所以排除了ab

四、起始有无^的区别

str2 = "aabab"
c = re.findall('.*',str2)	#结果:['aabab', '']
d = re.findall('^.*',str2)	#结果:['aabab']

五、pandas对具体列的内容通过正则表达式进行数据提取

1.使用前要确保该列的类型统一,str或者float格式,最好事先通过astype强制转换一下

2.df[‘新列名’]=df[‘提取的列名’].str.extract(‘正则表达式’, expand = True)

六、遇到的报错

报错:pattern contains no capture groups
(翻译:模式不包含捕获组)
解决:根据docs ,您需要为 str.extract 指定一个捕获组(即括号)好,提取。

参考文章:

https://www.cnblogs.com/ZhangHT97/p/13427325.html
https://www.cnblogs.com/YouJeffrey/p/15209895.html

https://blog.csdn.net/dudu3332/article/details/111555572 

到此这篇关于python通过正则匹配指定字符开头与结束提取中间内容的文章就介绍到这了,更多相关python正则匹配提取中间内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何解决requests,已经安装却无法import问题

    如何解决requests,已经安装却无法import问题

    这篇文章主要介绍了如何解决requests,已经安装却无法import问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • simple-pytest 框架使用教程

    simple-pytest 框架使用教程

    simple-pytest框架主要参考了httprunner的yaml数据驱动部分设计思路,是基于Pytest + Pytest-html+ Log + Yaml + Mysql 实现的简易版接口自动化框架,这篇文章主要介绍了simple-pytest 框架使用指南,需要的朋友可以参考下
    2024-02-02
  • 使用Python压缩和解压缩zip文件的教程

    使用Python压缩和解压缩zip文件的教程

    这篇文章主要介绍了使用Python压缩和解压缩zip文件的教程,主要用到了zipfile包,需要的朋友可以参考下
    2015-05-05
  • 浅析Python 多行匹配模式

    浅析Python 多行匹配模式

    这篇文章主要介绍了Python 多行匹配模式的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • python实现微信接口(itchat)详细介绍

    python实现微信接口(itchat)详细介绍

    这篇文章主要介绍了python实现微信接口(itchat)详细介绍,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • 在python环境下运用kafka对数据进行实时传输的方法

    在python环境下运用kafka对数据进行实时传输的方法

    今天小编就为大家分享一篇在python环境下运用kafka对数据进行实时传输的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python利用内置库实现数据的加密与校验

    Python利用内置库实现数据的加密与校验

    这篇文章主要为大家详细介绍了如何使用Python内置库实现数据的加密和校验,为开发者提供全方位的数据安全解决方案,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Python logging日志模块 配置文件方式

    Python logging日志模块 配置文件方式

    这篇文章主要介绍了Python logging日志模块 配置文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python使用自定义user-agent抓取网页的方法

    python使用自定义user-agent抓取网页的方法

    这篇文章主要介绍了python使用自定义user-agent抓取网页的方法,涉及Python使用urllib2模块操作网页的技巧,需要的朋友可以参考下
    2015-04-04
  • python实现年会抽奖程序

    python实现年会抽奖程序

    这篇文章主要为大家详细介绍了python实现年会抽奖程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论