2015-04-05 74 views
11

我试图在python中使用包含时出错。unicode字符串相当于包含

s = u"some utf8 words" 
k = u"one utf8 word" 

if s.contains(k): 
    print "contains" 

我该如何达到相同的结果?

与正常ASCII字符串

s = "haha i am going home" 
k = "haha" 

if s.contains(k): 
    print "contains" 

我使用蟒2.7.x

+0

什么错误? – rmuc8 2015-04-05 11:47:27

+0

'u'...''对象是**不是** * UTF-8单词*。它们是Unicode对象,而UTF-8是代表Unicode值的*编码数据。它可以在屏幕上显示图像并将其编码为PNG或JPEG文件或“日期时间”对象,并将这些对象编码为ISO-8601字符串。编码的数据和值是相关的,但不是相同的东西。 – 2015-04-05 12:03:00

回答

16

同为ASCII和UTF8字符串:

if k in s: 
    print "contains" 

上有ASCII或UFT8字符串没有:

>>> "strrtinggg".contains 
AttributeError: 'str' object has no attribute 'contains' 

,你可以用它代替contains什么是findindex

if k.find(s) > -1: 
    print "contains" 

try: 
    k.index(s) 
except ValueError: 
    pass # ValueError: substring not found 
else: 
    print "contains" 

当然只是,in运营商是要走的路,它更优雅。

6

strunicode之间没有差异为例。

print u"ábc" in u"some ábc" 
print "abc" in "some abc" 

基本上是一样的。

4

字符串没有“包含”属性。

s = "haha i am going home" 
s_new = s.split(' ') 
k = "haha" 

if k in s_new: 
    print "contains" 

我猜你想要实现这个

相关问题