鱼C论坛

 找回密码
 立即注册
查看: 97|回复: 2

[技术交流] 正则表达式显示的问题

[复制链接]
发表于 2025-3-9 23:07:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

import re
w=re.compile('\d+')

if '__main__' == __name__:
        w.findall('3只鸡,15条蛇,6只鸟')


执行上述代码的时候, 为甚么不返回['3', '15', '6'], 但是当使用print(w.findall('3只鸡,15条蛇,6只鸟'))才会返回列表['3', '15', '6'], 这是为什么呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2025-3-9 23:07:31 | 显示全部楼层
正则表达式和函数返回值的问题

在Python中,函数 re.findall() 用于查找所有与正则表达式匹配的非重叠项,并返回一个列表。但是,如果你调用该函数却不将结果使用或存储,它自然不会显示任何输出。

在你的代码中,执行 w.findall('3只鸡,15条蛇,6只鸟') 时,实际确实进行了匹配操作,并返回了一个列表,只是这个列表未被输出或打印。

调用 print() 是为了显式输出该返回值到控制台。简言之,只有当你将结果输出到控制台时,才会在终端中看到结果。

因此,你的代码需要这样写才会输出匹配的列表:
import re
w = re.compile(r'\d+')

if '__main__' == __name__:
    print(w.findall('3只鸡,15条蛇,6只鸟'))

这样你将会看到输出:[3, 15, 6]

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-10 14:22:05 | 显示全部楼层
这是Python交互式环境与脚本执行模式的差异。当直接执行表达式时,解释器默认不会显示非None的返回值;而print()会强制输出结果。建议在脚本中显式使用print输出,或在交互式环境中直接运行表达式查看结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-2 02:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表