为什么strip会给出给定字符串的意外结果?

时间:2017-02-17 17:45:13

标签: python

我有一个简单的字符串如下:

str = "id : c40d675f-19a9-4d40-9c6f-223eddafc81d"

预期产出:

  

c40d675f-19a9-4d40-9c6f-223eddafc81的 d

我尝试了什么?

print(str.strip('id : '))

我得到了什么:

  

c40d675f-19a9-4d40-9c6f-223eddafc81

我无法理解,为什么字符串末尾的最后一个字符“ d ”被删除了?当我尝试用其他字母替换字符' d '时,它可以正常工作。

5 个答案:

答案 0 :(得分:3)

因为strip()需要从字符串的两边删除一组字符。如果您已写完:str.strip("i18d"),则会从结尾删除81d,并从头开始删除id

答案 1 :(得分:1)

也许你想这样做:

this.setState({...this.state, editorState}); // do not use !

str.split(":")[1].strip() 从字符串的开头和结尾删除作为参数提供的任何可能的字符组合。这里,参数为strip,它从开头剥离'id : ',并从字符串末尾剥离'id : '(字符串'd'的可能组合之一)。 / p>

答案 2 :(得分:0)

我认为此链接可以为您提供帮助。

  

https://www.tutorialspoint.com/python/string_strip.htm

查看strip赋予的返回值

答案 3 :(得分:0)

<强>条([字符]):

  

chars参数不是前缀或后缀;相反,它的所有值组合都被剥离了

请注意,它会删除您提供的所有字符组合!

>>> str.lstrip("id :")
'c40d675f-19a9-4d40-9c6f-223eddafc81d'

lstrip()返回字符串的副本,其中所有字符都已从字符串的开头删除

或者 ,您可以使用str.replace("id : ", "", 1),指定将第一次出现的“id:”替换为空字符串

答案 4 :(得分:0)

strip()从序列中的每个字符中删除字符串的前导或尾随字符。

>>> 'abcadb'.strip('ab')
'cad'

>>> 'www.example.com'.strip('cmowz.')
'example'