Я просто хотел бы найти и заменить все вхождения URL-адреса twitter в строке (твит):
Input:
Это твит с URL: http://t.co/0DlGChTBIx
Вывод:
Это твит с URL:
Я пробовал это:
p=re.compile(r'\<http.+?\>', re.DOTALL)
tweet_clean = re.sub(p, '', tweet)
Я просто хотел бы найти и заменить все вхождения URL-адреса twitter в строке (твит):
Input:
Это твит с URL: http://t.co/0DlGChTBIx
Вывод:
Это твит с URL:
Я пробовал это:
p=re.compile(r'\<http.+?\>', re.DOTALL)
tweet_clean = re.sub(p, '', tweet)
Сделайте это:
result = re.sub(r"http\S+", "", subject)
http соответствует буквальным символам\S+ соответствует всем символам без пробелов (конец URL-адреса)В следующем регулярном выражении будут записаны две согласованные группы: первая включает все в твит, пока URL-адрес и второй не поймают все, что будет после URL-адреса (пустым в примере, который вы указали выше):
import re
str = 'This is a tweet with a url: http://t.co/0DlGChTBIx'
clean_tweet = re.match('(.*?)http.*?\s?(.*?)', str)
if clean_tweet: 
    print clean_tweet.group(1)
    print clean_tweet.group(2) # will print everything after the URL 
Вы можете попробовать следующую функцию re.sub удалить ссылку URL из вашей строки,
>>> str = 'This is a tweet with a url: http://t.co/0DlGChTBIx'
>>> m = re.sub(r':.*$', ":", str)
>>> m
'This is a tweet with a url:'
Он удаляет все после первого символа : и : в заменяющей строке добавляет : последним.
Это будет печатать все символы, которые только что были до символа :,
>>> m = re.search(r'^.*?:', str).group()
>>> m
'This is a tweet with a url:'
Попробуйте использовать это:
text = re.sub(r"http\S+", "", text)
 clean_tweet = re.match('(. *?) http (. *?)\s (. *)', content) 
 while (clean_tweet): 
 content = clean_tweet.group(1) + "" + clean_tweet.group(3) 
 clean_tweet = re.match('(. *?) http (. *?)\s (. *)', content)