re.findall返回结果与(){}的关系

一、问题来源:

s1 = "(\d){3}([a-zA-Z])"
s2 = "ddd.111kkkk6666lll"
re.findall(s1,s2)
output:
[('1', 'k'), ('6', 'l')]

为什么会返回这样的结果呢,(\d){3}预期返回三个数字,但只返回一个?

实验一、
import re
s1 = "(\d)([a-zA-Z])"
s2 = "ddd.123kkkk6666lll"
re.findall(s1,s2)
ouput:
[('3', 'k'), ('6', 'l')]
实验二、
s1 = "(\d){3}([a-zA-Z])"
s2 = "ddd.123kkkk6666lll"
re.findall(s1,s2)
output:
[('3', 'k'), ('6', 'l')]
实验三、
s1 = "(\d){4}([a-zA-Z])"
s2 = "ddd.123kkkk6666lll"
re.findall(s1,s2)
output:
[('6', 'l')]
实验四、
s1 = "(\d){5}([a-zA-Z])"
s2 = "ddd.123kkkk6666lll"
re.findall(s1,s2)
output:
[]
实验五、
s1 = "(\d{3}[a-zA-Z])"
s2 = "ddd.123kkkk6666lll"
re.findall(s1,s2)
output:
['123k', '666l']

结论:

1、正则表达式中有多少个括号,在匹配成功的结果中就会有多少个元素;
2、(){3}这种也只选择返回最后一个匹配的元素,不会有返回3个;

### 回答1: re库和requests库是Python中常用的两个库,它们的功能和作用有所不同。 re库是Python标准库中的一个模块,用于处理正则表达式。它提供了一些函数和方法,可以用来匹配、搜索、替换字符串中的内容,以及提取符合某种模式的数据。re库主要用于字符串处理和文本分析领域。 requests库是一个第三方库,用于向网络上的服务器发送HTTP请求,并获取服务器返回的响应数据。它提供了一些简洁易用的接口,可以实现HTTP协议中的GET、POST、PUT、DELETE等请求方式,并支持文件上传和下载、cookie管理、SSL证书验证等功能。requests库主要用于网络编程和Web开发领域。 两者之间的关系是,requests库中的一些函数和方法可以使用re库提供的正则表达式来处理响应数据,比如使用re.findall()函数从响应内容中提取符合某种模式的数据。同时,requests库也可以使用其他的第三方库来处理响应数据,比如使用BeautifulSoup库来解析HTML或XML文档。 ### 回答2: re库是Python的标准库之一,用于对文本进行正则表达式的匹配和处理。而requests是一个第三方库,用于发送HTTP请求和处理响应。尽管两者都与处理文本有关,但在功能和使用方式上存在一些区别和关系。 首先,re库主要用于对字符串进行模式匹配和提取,可以通过正则表达式来描述所需匹配的规则。通过re库的方法,可以对文本进行搜索、替换、拆分等操作。re库的使用相对较底层,需要手动编写正则表达式,掌握正则表达式语法。 而requests库则更加方便高级,它封装了HTTP请求的各种操作和功能,提供了更简洁的API。通过requests库,可以通过简单的函数调用来发送GET、POST、DELETE等请求,并处理响应结果。requests库还提供了各种功能,比如处理重定向、处理代理、设置认证等。 在关系上,requests库可以和re库结合使用。首先,可以使用requests库发送HTTP请求获取到的文本,然后再使用re库对这些文本进行正则表达式的匹配和处理。这种实现方式可以将二者的优点结合起来,方便地进行文本处理操作,比如提取特定内容、过滤无用信息等。 综上所述,re库和requests库在功能和使用方式上有一些区别,但它们也存在一定的联系和关系。re库主要用于对文本进行正则表达式的匹配和处理,而requests库用于发送HTTP请求和处理响应。可以通过结合使用二者,更方便地进行文本处理操作。 ### 回答3: re库与requests库是Python编程语言中常用的两个库,主要用于网络请求和正则表达式匹配。 requests库是一个高级的HTTP库,提供了简单易用的接口,用于发送HTTP请求和处理响应。它可以发送各种类型的请求,如GET、POST、PUT、DELETE等,并支持设置请求头、请求参数、cookies等。使用requests库可以方便地进行网页抓取、API调用等网络请求操作。 re库是Python标准库中的正则表达式模块,用于对字符串进行模式匹配。它提供了强大的正则表达式匹配功能,可以使用正则表达式进行字符串的查找、替换、提取等操作。re库包含多个函数和方法,如match、search、findall等,用于执行不同类型的匹配操作。 两者的关系是:requests库通常用于发送HTTP请求获取网页内容或API数据,而re库用于对这些获取的内容进行提取、匹配等操作。requests库负责获取数据,re库负责进一步处理获取到的数据。 综上所述,requests库和re库在网络请求和数据处理方面有一定的关联。在进行网络请求时,可以使用requests库发送请求并获取相应的内容,然后使用re库对获取的内容进行进一步处理和提取。两者一起使用,能够方便地处理网络请求和对获取的数据进行解析和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值