2014-07-17 179 views
-1

对不起,如果这已经发布在这里,但我不知道要搜索什么。我正在使用Python,我想在一串文本中找到一个字符。字符串看起来像这样:☺G18M1329D3920,2511171♥7006。我对这颗心感兴趣。我知道这是一个二进制6,但我怎样才能使用类似于.find()的字符串方法返回它的位置?搜索字符串的Unicode字符

+2

“二进制6”和“二进制字符”是什么意思? – vaultah

+1

'u“☺G18M1329D3920,2511171♥7006”.encode(“utf8”)。index(“\ xe2 \ x99 \ xa5”) .index('♥')'。 –

回答

1

当你说“二进制”,我认为你的意思是“Unicode代码点”。这是一个角色的数字表示。

通过转义字符串中的代码点,Unicode代码点可以用python字符串文字表示。 '心脏'符号实际上是代码点U + 2665。

所以,你可以写你的字符串是这样的:

mystring = u'\u263aG18M1329D3920,2511171\u26657006' 

请注意,我用\ u加上码点2665.

有了这些知识,你可以逃过了“心脏”它适用于find()

mystring.find(u'\u2665') 

编辑: Python 2.7版要求前u前缀字符串文字。

+2

如果您使用的是Python 2.x,则只有'unicode'文字识别'u'' u'转义:'u'\ u2665''。 “'\ u2665''只是一个由反斜杠,字母'u'和4个数字组成的6个字符的字符串。 – chepner

+0

@chepner谢谢,我将它编辑为答案 – dss539