从推文中去掉#和RT

1 投票
1 回答
6316 浏览
提问于 2025-04-29 23:45

我有数百万条推文,我想把推文中的 "#""RT" 去掉。例如:"RT @ABC: Meslekten ihraç edilen #polis müdürü Murat Çetiner" 处理后应该变成 " @ABC: Meslekten ihraç edilen polis müdürü Murat Çetiner"

这是我目前写的代码:

# coding:utf-8
import sys
x = "RT @zamancomtr: Meslekten ihraç edilen polis müdürü Murat Çetiner: Bana takdir belgesi veren     BM de mi paralel? http://t.co/sd5N6yaZzv http:…"
y = ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)"," ",x).split())
print y
暂无标签

1 个回答

0

你可以使用下面的代码:

z = lambda x: re.compile('\#').sub('', re.compile('RT @').sub('@', x, count=1).strip())
print z(x)

首先,re.compile('RT @').sub('@', x, count=1) 这段代码会把昵称前面的第一个 'RT' 替换掉。如果你想把帖子里所有的转发标签都去掉,只需要把代码中的 count=1 去掉就可以了。之所以要用 'RT @' 这个格式,是因为 'RT' 可能会出现在推文的其他地方。

同样,re.compile('\#') 这段代码会把推文中的所有话题标签(#号)都去掉。

撰写回答