Je voudrais simplement trouver et remplacer toutes les occurrences d'une URL Twitter dans une chaîne (Tweet):
Contribution:
Ceci est un Tweet avec une URL: http://t.co/0DlGChTBIx
Sortie:
Ceci est un Tweet avec une URL:
J'ai essayé ceci:
p=re.compile(r'\<http.+?\>', re.DOTALL)
Tweet_clean = re.sub(p, '', Tweet)
Faire ceci:
result = re.sub(r"http\S+", "", subject)
http
correspond aux caractères littéraux\S+
correspond à tous les caractères non-blancs (la fin de l'URL)La regex suivante capturera deux groupes appariés: le premier inclut tout ce qui se trouve dans le Tweet jusqu'à l'URL et le second capturera tout ce qui viendra après l'URL (vide dans l'exemple que vous avez posté ci-dessus):
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
Vous pouvez essayer la fonction re.sub ci-dessous pour supprimer le lien URL de votre chaîne.
>>> 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:'
Il supprime tout ce qui se trouve après le premier symbole :
et :
dans la chaîne de remplacement ajoute :
à la dernière.
Cela permet d’imprimer tous les caractères qui se trouvent juste avant le symbole :
,
>>> m = re.search(r'^.*?:', str).group()
>>> m
'This is a Tweet with a url:'
Essayez d'utiliser ceci:
text = re.sub(r"http\S+", "", text)