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

Python正则报TypeError: 'str' object is not callable排查

报错原因

触发TypeError: 'str' object is not callable的核心原因是对正则匹配Match对象的成员类型认知错误:

  • m.string是Match对象的属性,存储的是执行匹配操作时传入的原始待匹配字符串,本身是字符串类型,直接访问即可,不需要加()进行调用
  • 你写的m.string()相当于把字符串值当作函数执行,自然会抛出"字符串对象不可调用"的类型错误
    另外原始代码还存在Python语法层面的缩进问题:定义print_match函数后,函数内部的逻辑块没有做缩进,直接运行会先触发缩进错误,修复时需要一并调整。
修复方法

只需要做两处调整:

  1. 给print_match函数内部的所有逻辑补充4空格缩进,符合Python语法要求
  2. 把m.string()的调用括号去掉,直接访问m.string属性即可
修复后可运行的完整代码
import re
p = re.compile("ca.e")
def print_match(m):
    if m:
        print("m.group():", m.group()) 
        print("m.string:", m.string) 
        print("m.start():", m.start()) 
        print("m.end():", m.end()) 
        print("m.span():", m.span()) 
    else:
        print("No Match")

m = p.match("case") 
print_match(m)
运行输出结果
m.group(): case
m.string: case
m.start(): 0
m.end(): 4
m.span(): (0, 4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:48:14