我有一个python脚本,它从推文中删除RT ir转发,#hash标签..现在我想删除用户名,即一条推文有@userxyz:ie @符号后跟用户名后跟:(冒号) )..我只是想删除这样的用户:例如,如果推文是“@bugun:MHP'liKemallettinYılmazBankAsya'yayapılanintihardırhttp://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw}”我想要删除@bugun:得到结果为“MHP'liKemallettinYılmazBankAsya'yayapılanintihardırhttp://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw”
这是我从推文中删除散列和RT的代码:
# coding:utf-8
import sys, re
x = open("test.txt", "r")
for line in x:
z = lambda line: re.compile('\#').sub('', re.compile('RT @').sub('@', line, count=1).strip())
print z(line)
saveFile = open("test_result.txt", "a")
saveFile.write(z(line))
saveFile.write("\n")
saveFile.close()
答案 0 :(得分:0)
使用您提供的样本:
“@ bugun:MHP'liKemallettinYılmazBankAsya'yayyılanintihardırhttp://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw}”
代码(Python 3.4):
# coding:utf-8
import sys, re
x = open("test.txt", "r")
for line in x:
z = lambda line: re.compile('\#').sub('', re.compile('^@\w+: ').sub('', line, count=1).strip())
print (z(line))
saveFile = open("test_result.txt", "a")
saveFile.write(z(line))
saveFile.write("\n")
saveFile.close()
将输出:
MHP’li Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw
答案 1 :(得分:0)
你所拥有的只是找到合适的regexpr。顺便说一句,我在你的例子中包含了一个hashtag,并略微更改了你的代码以删除了#标签 - 不确定实际上是你想要的。 下面的函数将删除任何主题标签,以及“RT @”后面的用户名,后跟“:”。希望有所帮助。
import sys, re
tweet_text = "RT @bugun: MHP’li Kemallettin Yılmaz #Hello Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw"
def transform_tweet(line):
return re.compile('#\w+ ').sub('', re.compile('RT @\w+: ').sub('', line, count=1)).strip()
正在运行transform_tweet(tweet_text)
,我有:
"MHP’li Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw"