2011-02-22 39 views

回答

4

如果只有在表達式或字符串的開始/結尾處包含空格或(可能)時,表情符號才被替換,則可以使用一系列正則表達式。

使用此列表(從http://www.skype-forum.com/ftopic13197.html拍攝),...

List of smileys

可以構建這些是這樣的:

(?<=^|\s)<<smiley regex>>(?=\s|$) 

將匹配<<smiley regex>>只有當它自身。爲<<smiley regex>>

例子:

:-?\) :-?\(  :-?D   8\) 
;\(  \(sweat\) :\|   :\* 
:\$  :\^\)  \|-\)  \|\(
;\)  \]:\)  \(talk\)  \(yawn\) 
\(doh\) :@   \(wasntme\) \(party\) 

等等 - 你需要逃避了很多特殊含義的字符在正則表達式中使用。你的語言可能有一個re.escape()功能。

+0

簡單替換是不夠的,這就是爲什麼我開始了這個話題。 :)嘗試自己在skype – Somebody

+0

爲什麼它不夠?我沒有安裝Skype,我也不打算。你能多解釋一下嗎? –

+0

例如,如果:)微笑被雙方的文字包圍,它不會被圖標取代,只有在它被空白包圍時纔會被微笑所取代。這意味着他們正在使用一些額外的模式規則 – Somebody