栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python正则表达式re模块中贪婪和非贪婪模式,以及findall函数里面括号的作用。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python正则表达式re模块中贪婪和非贪婪模式,以及findall函数里面括号的作用。

贪婪与非贪婪

首先,使用“{m,n}”、“{m,}”、“?”、“*”和“+”这些字符在正则表达式中都会默认使用贪婪模式,而在这些字符后面加上一个?会变成非贪婪模式。比如*?

那么,贪婪模式和非贪婪模式的区即是,*的原意是可以匹配零次及零次以上,那么到底匹配的时候是选取0次还是一次还是两次呢。贪婪就表现在选取最多的次数。比如下列代码

import re

string = "aaaaaaa"

m = re.findall("a*", string)

print(m)

这里的m打印出来的结果取a的最多次,即七个a。非贪婪即截取最少的次数

findall()函数中括号的作用

该函数中的()可以使返回值为括号里面的表达式,即

string = ("abbsbaaaacs")

m = re.findall("a(.*?)s", string)

这次findall返回的内容是括号里表达式匹配到的内容,即表达式.*?匹配到的内容,即'bb'和'aaac'

如果有多个括号,则会以元组的形式,返回每个括号里正则表达式所匹配到的内容

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769224.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号