Если смайлики заменяются только в том случае, если они окружены пробелами или (предположительно) в начале / конце строки / строки, вы можете использовать серию регулярных выражений.
Используя этот список (взято из http://www.skype -forum.com / ftopic13197.html ), ...
![List of smileys](https://i.stack.imgur.com/bVhLf.png)
Вы можете построить их так:
(?<=^|\s)<<smiley regex>>(?=\s|$)
будет соответствовать <<smiley regex>>
, только если оно само по себе.
Примеры для <<smiley regex>>
:
:-?\) :-?\( :-?D 8\)
;\( \(sweat\) :\| :\*
:\$ :\^\) \|-\) \|\(
;\) \]:\) \(talk\) \(yawn\)
\(doh\) :@ \(wasntme\) \(party\)
и т.д.. - вам нужно экранировать множество символов специального значения для использования в регулярном выражении. Ваш язык может иметь функцию re.escape()
для этого.