Python解析邮件时变量条件字符串匹配问题:Bristol值替换未生效
问题原因
- 匹配判断失效:从字符串切片得到的
home_team首尾通常带有未清理的空白字符(多余空格、换行、制表符等),导致home_team == 'Bristol'的全等判断不成立,不会触发指定替换逻辑,仅会执行else分支的空格替换操作,因此返回结果不变。 - 赋值值不符合预期:你需要的结果是
Bristol City,但代码中命中判断后的赋值为带中划线的Bristol-City,即使判断生效也无法得到目标结果。
修正方案
首先对提取到的字符串做首尾空白清理,同时调整命中后的赋值内容,参考代码如下:
# 提取内容后先通过strip()清理首尾空白 home_team = inc_msg[inc_msg.find(' ')+1 : inc_msg.find(' -')].strip() if inc_msg[inc_msg.find(' ')+1 : inc_msg.find(' -')] else '' # 调整命中后的赋值为你需要的带空格的Bristol City,如需中划线可自行修改 home_team = 'Bristol City' if home_team == 'Bristol' else home_team.replace(' ', '-')
排查建议
如果修改后仍未生效,可执行print(repr(home_team))打印提取结果的结构化标识,确认是否存在其他不可见字符,或者核对切片的起止索引是否和当前邮件内容的格式匹配。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

