You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

re.fullmatch匹配异常:输入匹配模式为何返回False?如何修正?

解决re.fullmatch匹配结果判断错误的问题

你的代码问题不在于正则模式,而是对re.fullmatch的返回值判断逻辑错误:

  • re.fullmatch匹配成功时,返回的是一个Match对象,而非布尔值True;匹配失败时返回None。
  • 当你用== True比较时,Match对象和True并不相等,所以条件始终不成立,导致输出"NO"。

修改方法

直接判断re.fullmatch的返回值是否为非空(Python中Match对象在布尔上下文会被视为True,None视为False),去掉== True即可:

import re
pattern = '[A-Z0-9a-z]{3}'

if re.fullmatch(pattern,'abc'):
    print("CORRECT")
else:
    print("NO")

pattern2 = '[a-z][a-z][a-z]'

if re.fullmatch(pattern2,'abc'):
    print("CORRECT")
else:
    print("NO")

补充说明

如果需要获取匹配的详细信息(比如匹配内容、位置),可以将返回值赋值给变量后操作:

match_result = re.fullmatch(pattern, 'abc')
if match_result:
    print(f"匹配成功,内容为:{match_result.group()}")

内容的提问来源于stack exchange,提问作者Wazzuper11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:55:07