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

如何用Python正则从'_ is my name'文本提取名称并修复分组匹配错误

问题修复方案

错误原因

  • 正则表达式多写了一个冗余的左括号,导致分组计数和预期不符
  • 没有添加开头锚定符^,可能匹配到输入字符串中间的对应片段,而不是仅匹配开头的目标结构
  • 贪婪匹配符.*会尽可能多的匹配字符,如果输入内容在is my name后还有其他内容,会被误包含到名称分组中
  • 缺少匹配成功的判空逻辑,输入不符合格式时会直接抛出异常

修正后代码

import re
userInput = "Tom is my name I am 18 years old" # 示例输入
word = r'^(.*?) is my name'
name = re.search(word, userInput)
if name:
    print("Your name is", name.group(1)) 

代码说明

  • ^ 锚定匹配位置为字符串开头,确保只识别开头符合[名称] is my name结构的内容
  • 删掉冗余左括号后仅保留1个捕获分组,直接取group(1)即可得到名称
  • 非贪婪匹配符.*?仅匹配到后续is my name之前的内容,不会吞掉后面的无关内容
  • 新增判空逻辑,避免输入不符合格式时报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:27:04