首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从字符串中移除子字符串时的意外结果

从字符串中移除子字符串时的意外结果
EN

Stack Overflow用户
提问于 2018-04-03 20:30:44
回答 4查看 60关注 0票数 1

我有一个字符串s,我想从它中删除'.mainlog'。我试过:

代码语言:javascript
运行
复制
>>> s = 'ntm_MonMar26_16_59_41_2018.mainlog'
>>> s.strip('.mainlog')
'tm_MonMar26_16_59_41_2018'

为什么n被从'ntm...'中删除?

同样,我还有一个问题:

代码语言:javascript
运行
复制
>>> s = 'MonMar26_16_59_41_2018_rerun.mainlog'
>>> s.strip('.mainlog')
'MonMar26_16_59_41_2018_reru'

为什么python坚持从我的字符串中删除n?我如何才能正确地从字符串中删除.mainlog

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-03 20:35:22

如果您阅读str.strip的文档,您将看到:

chars参数是一个字符串,指定要删除的字符集

因此,'.mainlog' (['.', 'm', 'a', 'i', 'n', 'l', 'o', 'g'])中的所有字符都是从开头和结尾开始和结束的。

您想要的是str.replace将所有出现的'.mainlog'替换为nothing:

代码语言:javascript
运行
复制
s.replace('.mainlog', '')
#'ntm_MonMar26_16_59_41_2018'
票数 2
EN

Stack Overflow用户

发布于 2018-04-03 20:34:47

来自Python文档:

https://docs.python.org/2/library/string.html#string.strip

目前,它试图删除您提到的所有字符(“.”、“m”、“a”、“i”.)

您可以使用string.replace代替。

代码语言:javascript
运行
复制
s.replace('.mainlog', '')
票数 2
EN

Stack Overflow用户

发布于 2018-04-03 20:34:32

你使用了错误的函数。strip从字符串的开头和结尾删除字符。默认情况下,可以提供要删除的字符列表。

您应该使用:

代码语言:javascript
运行
复制
s.replace('.mainlog', '')

或者:

代码语言:javascript
运行
复制
import os.path
os.path.splitext(s)[0]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49638674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档