2014-07-17 232 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