我是编程新手,我试图用python来帮助我处理一些数据。在大多数情况下,当我执行.rstrip('')时,它会执行我想要的操作。有几次,当我要求它打印剥离的版本,我注意到它起飞像一个额外的'米'我不打算拿出来。我做错什么了吗?你知道吗
我使用的示例如下:
x = 'SomethingUnwanted_MO-WantedStuff'
f = x.rstrip('SomethingUnwanted_')
print f
在这种情况下,我想要的是“我想要的东西”。然而,时不时地,当我点击打印时,我会得到一些想要的东西。我做错什么了吗?你知道吗
最新消息:我意识到我按别人的指示打错了字。我修好了。你知道吗
你似乎对
rstrip
的作用感到困惑:与:
docs:
编辑
在编辑之后,您似乎再次感到困惑,从上面的右侧将删除传入的匹配序列在您的情况下,不会删除任何内容:
如果要从左侧剥离传入的匹配,则需要
strip
:如@chapelo所示,如果您希望从任何位置删除此字符串,则可以使用
replace
:你有两个问题:
首先,这将从字符串
x
的右侧中删除字符,但在您的示例中,不需要的字符位于字符串的左侧。在这种情况下,您需要普通的旧strip
。你知道吗其次,
strip
和rstrip
不删除字符串,它们删除字符串中的所有字符,这是完全不同的。也就是说,剥离'SomethingUnwanted_'
不会删除字符串'SomethingUnwanted_'
,而是删除所有S
、所有o
、所有m
,依此类推。这就是为什么它有时会比你想象的要多。你知道吗你想要的更像这样:
您也可以使用正则表达式(
re
模块)来完成。这样,您就可以使用^
来确保它只在开头匹配。但是要小心,正则表达式是它们自己的小型语言。您可以安全地使用字母数字字符和下划线,如您的示例中所示,但有些字符在正则表达式中有自己的含义,可能不会按您的意愿执行。你知道吗使用
str.replace
更简单:相关问题 更多 >
编程相关推荐