在 html 文件中,通常会发现人们插入情感标记。通常,它看起来像这样:
<img alt="" border="0" class="inlineimg" src="images/smilies/smile.png" title="Smile"/>
如果只有一个这样的情感img,用它的情感标题替换它们很方便。例如:
def remove_single_img_tags(data):
p = re.compile(r'<img.*?/>')
img = re.findall(p, data)
emotion = img[0].split('title=')[1].split('/')[0]
return p.sub(emotion, data)
test1 = u'I love you.<img alt="" border="0" class="inlineimg" src="images/smilies/smile.png" title="Smile"/>.I hate bad men.'
remove_single_img_tags(test1)
但是,如果有多个img html标签形式的情感标记。这并不容易。
def remove_img_tags(data):
p = re.compile(r'<img.*?/>')
img = re.findall(p, data)
emotions = ()
for i in img:
emotion = i.split('title=')[1].split('/')[0]
emotions[i] = emotion
return p.sub(emotions, data)
test2 = u'I love you<img alt="" border="0" class="inlineimg" src="images/smilies/smile.png" title="Smile"/>I hate bad men <img alt="" border="0" class="inlineimg" src="images/smilies/mad.png" title="Mad"/>'
remove_img_tags(test2)
上面的 python 脚本不起作用。TypeError: 'tuple' object does not support item assignment