从推文中删除用户

时间:2014-11-03 21:39:52

标签: python regex

我有一个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()

2 个答案:

答案 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"
相关问题