Je nettoie une série de sources à partir d'un flux Twitter. Voici un exemple des données:Meilleure façon d'utiliser re.sub
source = ['<a href="https://twitter.com/download/android" rel="nofollow">Twitter for Android Tablets</a>',
'<a href="https://twitter.com/download/android" rel="nofollow">Twitter for Android</a>',
'<a href="http://foursquare.com" rel="nofollow">foursquare</a>', 'web',
'<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>',
'<a href="http://blackberry.com/twitter" rel="nofollow">Twitter for BlackBerry</a>']
import re
for i in source:
re.sub('<.*?>', '', re.sub(r'(<.*?>)(Twitter for)(\s+)', r'', i))
### This would be the expected output ###
'Android Tablets'
'Android'
'foursquare'
'web'
'iPhone'
'BlackBerry'
Le dernier est le code que j'ai qui fait le travail, mais est affreux. J'espérais qu'il y aurait une meilleure façon de le faire, y compris re.sub()
ou une autre fonction qui pourrait être plus appropriée.
s [s.index ('>') + 1: s.rindex ('<')] '. Au fait: au lieu de '. *?', J'utiliserais [^>] * '. – Bakuriu
Nice codegolf! :) – TML
@Bakuriu thx pour le commentaire. Quelle serait l'explication de '[^>] *'? – marbel