l = ':;\'"!@#$%^&*()_-=+][{}~`.><?/\\|' # list of character that can be used for emoticons
s = '<p>This :) is an example for:) emoticons :)</p>'
我使用了s.replace(':)', '<img>')
和
result = '<p>this <img> is an example for<img> emoticons <img></p>'
如何制作如下结果:
result = '<p>this <img> is an example for:) emoticons <img></p>'
感谢您的帮助!
编辑:我有一个初始列表l
。用户只能使用l
中的字符制作表情符号。例如::)
,:]
等。对于每个表情符号,我将分别将其更改为图像作为响应。因此用户必须正确输入数据:通配符应该是独立的。困难的部分是输入数据包括HTML标签。
答案 0 :(得分:2)
import re
emos = { ':)' : 'smiley.jpg',
':(' : 'saddy.jpg',
';p' : 'bllinky.jpg' }
pattern = re.compile('|'.join( re.escape(emo) for emo in emos))
def emoImg(emoMatch):
return '<img src = "/images/{0}>'.format(emos[emoMatch.group(0)])
def emoSub(string):
return pattern.sub(emoImg,string)
print(emoSub('Hi :) I miss you :('))
答案 1 :(得分:1)
>>> s = '<p>This :) is an example for:) emoticons :)</p>'
>>> s.replace(' :)', ' <img>')
'<p>This <img> is an example for:) emoticons <img></p>'
如果您只想在模式具有前导空格的情况下进行替换,请在匹配和替换周围添加前导空格。
答案 2 :(得分:1)
import re
s = '<p>This :) is an example for:) emoticons :)</p>'
s = re.sub('\s:\)', ' <img>',s)