2014-10-27 55 views
0

我有數以百萬計的推文,我想從推文中刪除"#""RT"。例如:"RT @ABC: Meslekten ihraç edilen #polis müdürü Murat Çetiner"應該給輸出" @ABC: Meslekten ihraç edilen polis müdürü Murat Çetiner"從推文中刪除#和RT

下面是我對現在的代碼:

# 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 
+0

那麼代碼*做什麼*?問題是什麼;應該怎麼做呢?你到目前爲止嘗試解決這個問題? – jonrsharpe 2014-10-27 19:00:47

+0

該代碼刪除了推文中的所有特殊字符,我想使用正則表達式,但我不確定如何使用它。 – 2014-10-27 19:06:06

+0

那麼也許你應該開始學習如何使用它:https://docs.python.org/2/howto/regex.html – jonrsharpe 2014-10-27 19:07:24

回答

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('\#')刪除tweet中的所有hashtags。