2011-02-23 39 views
0

任何人都知道從哪裏可以得到帶有微笑正則表達式模式的源文件?帶有微笑正則表達式模式的Skype源文件

想了解他們是如何工作的。

我花了幾天的時間試圖重新創造確切的笑容識別,但還沒有想出適當的模式。

任何人都可以提供一些有關它的信息?

謝謝;)

+2

也許他們沒有Skype的使用正則表達式匹配... –

+0

對不起,什麼? – Somebody

+0

@Beck,我的意思是,在內部,Skype可能不會使用正則表達式在消息中查找這些表情符號。 –

回答

0

我不會用正則表達式。

我會使用一個地圖,其中的鍵是笑臉字符和值是笑臉圖片的網址。然後,我將迭代映射條目並將所有找到的鍵替換爲等效值。

不幸的是,你不說什麼編程語言,這是約,所以這裏是一個簡單的Java實現:

Map<String,String> smileyMap = new HashMap<String, String>(); 
smileyMap.put(":-)", "simpleSmiley.png"); 
smileyMap.put(":-(", "sadSmiley.png"); 
// etc. 

String text = null;// wherever you get the text from 
for(Entry<String, String> entry : smileyMap.entrySet()){ 
    text=text.replace(entry.getKey(), 
     "<img src=\"http://my.smiley.server/"+ entry.getValue() + "\" />"); 
} 

// now text contains the smileys as HTML images 
+1

據我瞭解,它只是取代所有的比賽,無所謂他們在哪裏位於文本。嘗試在skype聊天中輸入此內容,並會看到我在說什麼:D:Dte:Dst:D:D:Dtest:D:D – Somebody

+0

@Beck,對不起,我不會將該字符串發送給任何人。你爲什麼不說這是什麼行爲? –

+0

地圖意味着你要一個接一個地替換它,而不是一次傳遞(至少是你寫它的方式,你可以寫一個簡單的解析器)。另外,你應該介意這個命令 - '] :)'是一個有效的笑臉,':)'也是。你可能想要檢查它們的長度,從最長到最短。 – Kobi