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

Python使用re.findall提取指定特征拉丁词返回结果异常如何解决

代码存在的核心问题

  • 正则规则匹配逻辑错误:你当前写的正则'tion|ex|ph|ost'只会提取文本里的这几个特征子串本身,不会捕获包含这些子串的完整单词,比如输入里的functions只会匹配到子串tion,不会拿到整个functions单词。
  • 返回值格式错误:re.findall本身的返回结果就是列表类型,你额外套了list()再加一层方括号,会生成嵌套列表,和预期的单层单词列表完全不符。
  • 关于你提到的NoneType错误:大概率是你调用函数时传入的text参数是None而非字符串类型,re.findall接收None作为输入时会抛出类型错误。

修正后可正常运行的代码

import re 
def latin_ish_words(text):
    # 先校验输入类型,避免None触发报错
    if not isinstance(text, str):
        return []
    # 正则匹配包含指定特征的完整单词,忽略大小写
    return re.findall(r'\b\w*(?:tion|ex|ph|ost)\w*\b', text, flags=re.I)

运行验证结果

  • 调用latin_ish_words("This works well") 返回[],符合预期
  • 调用latin_ish_words("This functions as expected") 返回['functions', 'expected'],符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:36:03