python通过正则匹配开头和结尾提取中间字符串内容
Python 字符串 通过 内容 匹配 提取 正则 中间
2023-09-27 14:29:08 时间
一、提取包含始末字符
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对具体列的内容通过正则表达式进行数据提取
使用前要确保该列的类型统一,str或者float格式,最好事先通过astype强制转换一下
df[‘新列名’]=df[‘提取的列名’].str.extract(‘正则表达式’, expand = True)
参考文章:
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-实战-学员管理系统
- python 将带有TZ的UTC时间字符串,转换成本地时间
- 判断回文字符串、回文链表、回文数(python实现)
- 【Python 百炼成钢】进制转换、特殊回文数、水仙花数、杨辉三角、字母图形、01字符串、回形取数、排他方数、世纪末的星期日、约瑟夫环
- 【Python 百练成钢】报时助手、成绩分析、购物清单、字符串对比、FJ的字符串
- 【Python开发】python PIL读取图像转换为灰度图及另存为其它格式(也可批量改格式)
- 【神经网络与深度学习】【python开发】caffe-windows使能python接口使用draw_net.py绘制网络结构图过程
- 干货分享丨Python介绍及安装使用
- Python 爬虫修养-处理动态网页
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
- (Python入门篇——2)循环.判断
- 史上最全python字符串操作指南
- python+fiddler下载vip视频 && ts视频可合并
- python之import机制
- Python中使用f字符串进行字符串格式化的方法
- 第8.19节 使用__doc__访问Python文档字符串(DocStrings )
- Python中字符串使用单引号、双引号标识和三引号标识,什么是三引号?什么情况下用哪种标识?
- Python中format_map与format字符串格式化的区别
- 第二章 Python基本元素:数字、字符串和变量
- Python pandas 新建sheet保存到Excel文件的方法及示例代码
- Python 通过两个字符串(分隔符)分割拆(split)分字符串的方法代码总结
- python:mac环境gunicorn+nginx部署flask项目