2016-11-17 69 views
-1

我试图从字符串'Rhode Island[edit]'提取州名。为什么分割和剥离给python不同的输出?

当我试图.split('[[]').str[0],我得到了正确的结果“罗得岛”。 然而,当我试图.rstrip('[edit]'),我得到了错误的结果“罗得Islan”。

我有困惑,为什么左括号前面的字符“d”,当我用rstrip功能也被删除了。

+2

参数为'rstrip()可以'是“*被去除指定一组字符的字符串。*”。阅读文档:。https://docs.python.org/3/library/stdtypes.html?highlight=rstrip#str.rstrip – cdarke

+0

' '罗德岛[编辑]' 分裂( '[]')海峡[ 0]'会产生'AttributeError';请验证你的问题的一部分。 –

回答

1

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

返回字符串S的尾随空格去掉一个副本。 如果给出字符而不是无,请删除字符中的字符。 如果字符是unicode,S将被转换你的情况剥离

的字符= [ '[', 'E', 'd', 'I', 'T', ']'] 之前为Unicode其中包含“d”,通过给定的字符形成有向前后串是d[edit]

尝试正则表达式

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

使用're'是最好的方法,因为它揭示了这个意图。 –

3

rstrip没有做你想要的东西,它会从字符串的结尾指定的所有字符,所以它删除“[”,“E”,“d”,“我”,“T”和' ]”。你需要的是分裂的“[”然后在第一个元素:'Rhode Island[edit]'.split('[')[0]

相关问题