Удалить пользователя из твита

У меня есть скрипт python, который удаляет RT ir retweet из твита, # hash tag. Теперь я хочу удалить имя пользователя, а также твит, у которого есть @userxyz: ie @symbol, за которым следует имя пользователя, а затем: (двоеточие). Я просто хочу удалить таких пользователей: например, если твит "@bugun: MHPli Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw }" Я хочу удалить @bugun: и получить результат как "MHPli Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://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 ответа

Используя образец, который вы дали:

"@bugun: MHPli Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://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()

Вывод:

MHPli Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw


Все, что у вас есть, это найти правильное regexpr. Кстати, я включил hashtag в ваш пример и немного изменил ваш код, чтобы удалить хэштегов тоже - не уверен, что это действительно то, что вы хотели. Функция ниже удалит любой хэштег и имя пользователя, следующего за "RT @", а затем ":". Надеюсь, это поможет.

import sys, re

tweet_text = "RT @bugun: MHPli 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), у меня есть следующее:

"MHPli Kemallettin Yılmaz Bank Asya'ya yapılan intihardır http://t.co/AKxMgMuuSs @bugun http://t.co/fyJbr098tw"

licensed under cc by-sa 3.0 with attribution.