一、提取包含始末字符

1、起始字符串固定

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

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

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

二、不包含始末字符串

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

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

.:匹配任意字符
*:匹配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通过正则匹配指定字符开头与结束提取中间内容相关推荐

  1. php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容

    正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/u [php] $str ...

  2. java正则贪婪匹配指定字符开头和结尾或括号中内容

    项目中需要这样二种场景,需要贪婪匹配一个字符串,按照相应的匹配规则,替换指定的字符. 一.场景一匹配规则 1.中括号开头紧接2位数字 2.中间部分任意 3.右中括号结尾 代码如下: String st ...

  3. java正则匹配第一个符合的_java正则贪婪匹配指定字符开头和结尾或括号中内容...

    项目中需要这样二种场景,需要贪婪匹配一个字符串,按照相应的匹配规则,替换指定的字符. 一.场景一匹配规则 1.中括号开头紧接2位数字 2.中间部分任意 3.右中括号结尾 代码如下: String st ...

  4. Python 正则匹配以xx开头以xx结尾的单词

    参考 正则匹配以xx开头以xx结尾的单词 Python 正则表达式

  5. linux 上使用wc -l命令快速查看文件内容有多少行,以及如何匹配指定字符查看多少行

    1 linux的cat -n命令查看文件内容一共有多少行 1.cat -n命令查看文件多少行 cat -n filename 如:cat -n gallery_color_depth.txt - 2. ...

  6. python正则匹配空格+数字+空格_详解Python中正则匹配TAB及空格的小技巧

    详解Python中正则匹配TAB及空格的小技巧 发布时间:2020-10-15 08:38:48 来源:脚本之家 阅读:94 作者:杰瑞26 在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任 ...

  7. 正则匹配以什么开头、以什么结尾,以非什么开头,以非什么结尾

    正则匹配以什么开头.以什么结尾,以非什么开头,以非什么结尾 (1)正则匹配以start开始的字符串 ^(?=start) (2)正则匹配以非start开始的字符串. ^(?!start) (3)正则匹 ...

  8. 验证字符串是否以指定字符开头

    在正则表达式中使用变量时,应该通过JavaScript提供的内置函数eval()来动态执行,eval()函数允许JavaScript源代码的动态执行,也就是说首先会获得变量的值,再讲整个字符串组合成一 ...

  9. 判断字符串是否以指定字符开头

    应用String类中提供的startsWith()方法来实现,用于判断字符串是否以指定的前缀开始 public boolean startsWith(String prefix) prefix:为指定 ...

  10. re正则匹配中文字符

    re正则匹配中文字符 re 匹配中文字符规则 re.compile(u"[\u4e00-\u9fa5]+") 下图是我爬取jd手表的一条数据 在该字典中的title键所对应的值va ...

最新文章

  1. 【dfs】栅栏的木料(2012特长生 T4)
  2. servlet中访问mysql无法包含中文的解决
  3. 3d模型多怎么优化_3D打印人像模型是怎么制作出来的呢?
  4. 眨眼快奔四了,大家的存款都有多少啊?
  5. 算法应用-斐波那契数列
  6. Win10使用sh执行python脚本报错:Permission denied
  7. 【运动学】基于matlab平抛小球地面跳跃规律【含Matlab源码 981期】
  8. linux如何安装yum
  9. SWMM建模与案例应用
  10. 查看电脑卸载mysql是否干净_如何把Mysql卸载干净(亲测有效)
  11. weka下载后没有安装java_Weka程序原版安装文件[下载指引]
  12. (附源码)springboot宠物管理系统 毕业设计 121654
  13. 5W2H法分析用户流失内因
  14. Linux下USB驱动框架分析【转】
  15. 航嘉服务器维修电源,无故障60000小时,服务器/工控机电源推荐
  16. RStudio安装tsna时报错installation of package ‘tsna’ had non-zero exit status
  17. 奥运门票可以网上卖,火车票为什么不行
  18. python依据出生日期判断星座(少量代码)
  19. 在微信内置浏览器 ios video再次点击事件没反应 video有些视频上下出现空白原因
  20. 5G MEC如何产生:从标准演进看云网融合

热门文章

  1. 水和水蒸气物性计算微信小程序
  2. 计算机自动维护有用吗,Win10系统关闭自动维护功能提高系统运行速度
  3. Symbol类型详解
  4. EasyBoot常用的命令
  5. 华东理工大学计算机考研资料汇总
  6. k近邻算法与kd树的创建和搜索
  7. 软件工程——团队作业4
  8. java多线程视频转码_java 后台视频转码、压缩工具
  9. 用rtl8139网卡制作的bios编程器(不用并口)
  10. java 登陆qq_纯java的QQ登陆界面