首页 > 编程语言 >python正则贪婪匹配

python正则贪婪匹配

时间:2023-11-28 13:36:31浏览次数:39  
标签:.+ 匹配 python strData re 正则 贪婪 print findall

一、问题:
我想对a234ba444bab这个字符串,提取出来234和444两组数据,要怎么匹配

 

二、回答
采用re.findall('a(.+?)b','a234ba444bab')

说明:
这里.+代表起码匹配一个,如果用.* 的话可能匹配出来空即0~n个
这里?代表最小匹配即非贪婪匹配,上面的意思是当看到b就结束,不加?则看到b不会立马结束,还会继续往后查找直到找到最后一个b才结束

代码如下所示:

 1 #默认贪婪匹配即最大匹配,?为非贪婪匹配即最小匹配  
 2 strData = "a234ba444bab"  
 3 print(re.findall('a(.+)b',strData))  
 4 print(re.findall('a(.*)b',strData))  
 5   
 6 print(re.findall('a(.+?)b',strData))  
 7 print(re.findall('a(.*?)b',strData))
 8 
 9 >>> 运行结果如下:
10 >>> ['234ba444ba']
11 >>> ['234ba444ba']
12 >>> ['234', '444']
13 >>> ['234', '444', '']

可以看到想要实现问题中的结果,正确答案是第三种第6行的写法:print(re.findall('a(.+?)b',strData))

标签:.+,匹配,python,strData,re,正则,贪婪,print,findall
From: https://www.cnblogs.com/miaomiaokaixin/p/17861742.html

相关文章

  • python如何获取工程的根目录以及文件路径?
    一、问题:python如何获取工程的根目录以及文件路径? 二、回答1.思路为在工程根目录下新建一个py文件,这样获取到的路径就是工程的根路径2.基于此即可封装获取文件路径的方法代码如下所示:1importos23defgetFileDir(*args):4'''5获取工程中文件路径,......
  • 【Python】注解的使用
    注解是给人看的,编译器并不会检查类型。如果不写注解,编辑器不会有代码补全功能,因为它不知道你是什么类型。有了注解之后,编辑器就知道你是什么类型,就会进行代码提示。1、函数注解语法如下:deffunc_name(arg1:Type,arg2:Type)->ReturnType:pass2、变量注解语法如下:va......
  • python Matplotlib库:根据excel生成各种柱状图
    我将向大家介绍如何使用Python和一些常见的库来根据Excel数据生成十种不同类型的图表。通过多维度的可视化,我们可以更全面地了解数据中的模式、趋势和关系。无论您是数据分析师、市场营销人员还是研究人员,这些图表将帮助您挖掘数据中更多的信息。1.准备工作 首先,我们需要安装一些......
  • python中全局变量和局部变量作用域理解
    一:描述python中全局变量和局部变量作用域理解 二:回答1. 局部变量不能修改全局变量局部变量只作用于方法内,无法修改全局变量1#全局变量city2city="上海"34defmod_city():5#局部变量city6city="深圳"7print(city)89......
  • python中面向对象有什么特点
    一:问题python中面向对象有什么特点? 二:回答python同其他面向对象语言一样,有3个特征:封装、继承、重写 简单理解就是:封装:把一系列属性和操作封装到一个方法里面,这样想要实现某种效果,只需要简单的调个方法名字就行了,不需要在写一遍所有的操作内容继承:简单理解就是拼爹,父辈拥......
  • python面向对象方法与属性
    一:描述python中面向对象方法与属性:①静态变量:实例变量、类变量②静态方法:@staticmethod,相当于被放到类里的函数③私有属性和方法:以两个下划线开头,如__secret()④魔术方法:以两个下划线开头且以两个下划线结尾,如__secret__()⑤受保护的属性和方法:以一个下划线开头,如_secret()⑥特殊......
  • python对象嵌套
    一、描述python对象嵌套,即包含的关系。python实现:班级(名字,多个学生)、学生(学号,姓名) 二、详细说明要想实现班级里含有多个学生的这种关系,可以在班级类里嵌套学生类,将学生类信息以列表的形式存储保存即可1classStudent:2def__init__(self,s_no,s_name):3......
  • python虚拟环境
    一:问题我下了别人的工程,工程环境是用全局的python环境好,还是弄一个虚拟环境好一点,为什么? 二:回答用虚拟环境好,因为能够实现环境分离,你能在虚拟环境中安装项目特定的依赖项,而不会影响全局Python环境。从而实现不同项目维护不同的依赖关系,而不必担心版本冲突或相互影响。具体操......
  • python函数返回多个值会打包成元组
    一:问题python中函数可以一次返回多个值么? 二:回答可以的,其一次返回的多个值会被打包成元组如下所示:defdemo2(name,age):content=f"nameis{name},ageis{age}"returnname,age,contentif__name__=="__main__": data=demo2("mmkx",20) pri......
  • python函数return会结束整个函数的执行
    一:问题python函数中有for循环,对for循环进行return,函数会继续往下执行么? 二:回答不会。如下所示:defdemo3():print("a")foriinrange(3):print(i)returniprint("b")defdemo4():print("a")foriinran......