为什么split和strip在python中提供不同的输出?

时间:2016-11-17 06:37:09

标签: python string split strip

我试图从字符串'Rhode Island[edit]'中提取州名。

当我尝试.split('[[]').str[0]时,我得到了正确的结果'罗德岛'。 但是,当我尝试.rstrip('[edit]')时,我得到了错误的结果'Rhode Islan'。

当我使用rstrip函数时,为什么左括号前的字符'd'也被删除了我很困惑。

2 个答案:

答案 0 :(得分:3)

rstrip没有做你想做的事情,它删除了字符串末尾指定的所有字符,因此删除了' [',' e&#39 ;,',' i',' t'和']'。你想要的是分开' ['然后取第一个元素:'Rhode Island[edit]'.split('[')[0]

答案 1 :(得分:1)

S.rstrip([chars]) - >字符串或unicode

返回字符串S的副本,删除尾部空格。 如果给出了chars而不是None,则删除chars中的字符。 如果chars是unicode,则在剥离之前S将转换为unicode

在你的情况下,chars = [' [',' e'' d',' i',&#39 ;吨'']'] 其中包含' d'由给定的字符组成的尾随字符串是d[edit]

尝试正则表达式

import re
re.compile(r'\[edit\]$').sub('','Rhode Island[edit]')