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

Python strip方法移除指定子串时为何会额外删除末尾的e字符

Python strip方法异常行为原因

核心原理

str.strip(chars) 并不是按照完整子串匹配来移除内容,它的参数chars是一个字符集合:方法会从字符串的首尾两端同时遍历,删除所有属于chars集合内的单个字符,直到遇到第一个不在集合内的字符才终止操作。

测试用例现象解释

你传入的参数"router_"对应的字符集合为 {'r','o','u','t','e','_'},结合两个测试用例的差异:

  • 第一组测试字符串结尾是e:e属于上述字符集合,因此会被删除,最终输出sdkf12
  • 第二组测试字符串结尾是a:a不在上述字符集合中,所以末尾不会被裁剪,最终输出sdkf12a

正确移除固定前缀的方案

如果你需要精准移除开头的router_前缀,不要用strip,推荐以下方案:

  • Python 3.9及以上版本,直接使用前缀匹配方法:
test = "router_sdkf12e"
print(test.removeprefix("router_")) # 输出 sdkf12e
  • 低版本Python可以用切片实现:
prefix = "router_"
test = "router_sdkf12e"
if test.startswith(prefix):
    test = test[len(prefix):]
print(test) # 输出 sdkf12e

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:15:04