首页IT科技python 正则 findall(Python正则表达式findall函数详解)

python 正则 findall(Python正则表达式findall函数详解)

时间2025-08-03 00:54:31分类IT科技浏览5161
导读:在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候。下面看下re模块下的findall( 函数和多个表达式元组相遇的时候会出现什么样的坑。...

在写正则表达式的时候总会遇到不少的问题                , 特别是在表达式有多个元组的时候                。下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑                      。

代码如下

importre str="abcd" regex0=re.compile("((\w+)\s+\w+)") print(regex0.findall(str)) regex1=re.compile("(\w+)\s+\w+") print(regex1.findall(str)) regex2=re.compile("\w+\s+\w+") print(regex2.findall(str))

输出结果

[(ab,a),(cd,c)] [a,c] [ab,cd]

可能结果有点意外                      ,下面解释一下

第一个正则表达式中是带有2个括号的        ,我们可以看到其输出是一个list 中包含2个 tuple

第二个正则表达式中带有1个括号            ,其输出的内容就是括号匹配到的内容                      ,而不是整个表达式所匹配到的结果        。

第三个正则表达式中不带有括号,其输出的内容就是整个表达式所匹配到的内容            。

结论:findall()返回的是括号所匹配到的结果(如regex1)            ,多个括号就会返回多个括号分别匹配到的结果(如regex)        ,如果没有括号就返回就返回整条语句所匹配到的结果(如regex2)                      。所以在提取数据的时候就需要注意这个坑            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
进程的意思(athoc.exe进程是安全的吗 athoc进程是病毒吗) xdpyinfo命令找不到(xfs_info命令 – 查看XFS类型设备详情)