Python strip() 去除Unicode字符串?
你怎么能在一个unicode字符串上使用像strip()这样的字符串方法呢?而且你不能像普通字符串那样访问unicode字符串的字符吗?比如说,mystring[0:4] 这样。
4 个回答
2
在Python 3中,你可以对字符串进行各种操作,实际上所有的字符串都是Unicode格式的。
>>> my_unicode_string = u"abcşiüğ"
>>> my_unicode_string[4]
u'i'
>>> my_unicode_string[3]
u'\u015f'
>>> print(my_unicode_string[3])
ş
>>> my_unicode_string[3:]
u'\u015fi\xfc\u011f'
>>> print(my_unicode_string[3:])
şiüğ
>>> print(my_unicode_string.strip(u"ğ"))
abcşiü
3
也许现在回答这个问题有点晚,但如果你在找的是库函数而不是实例方法,你也可以使用这个。只需这样做:
yourunicodestring = u' a unicode string with spaces all around '
unicode.strip(yourunicodestring)
在某些情况下,使用这个会更简单,比如在一个映射函数里面,像这样:
unicodelist=[u'a',u' a ',u' foo is just...foo ']
map (unicode.strip,unicodelist)
8
只要它们是真正的 unicode
字符串,而不是 str
字符串,它就会像往常一样工作(注意:每个字符串字面量前面必须加上 u
,就像这个例子一样):
>>> a = u"coțofană"
>>> a
u'co\u021bofan\u0103'
>>> a[-1]
u'\u0103'
>>> a[2]
u'\u021b'
>>> a[3]
u'o'
>>> a.strip(u'ă')
u'co\u021bofan'