web-dev-qa-db-fra.com

Supprimer la chaîne secondaire en utilisant Python

J'extrais déjà des informations d'un forum. C'est la chaîne brute que j'ai maintenant:

string = 'i think mabe 124 + <font color="black"><font face="Times New Roman">but I don\'t have a big experience it just how I see it in my eyes <font color="green"><font face="Arial">fun stuff'

Ce que je n’aime pas, c’est la sous-chaîne "<font color="black"><font face="Times New Roman">" et "<font color="green"><font face="Arial">". Je veux garder l'autre partie de chaîne sauf ceci. Donc, le résultat devrait être comme ça

resultString = "i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"

Comment pourrais-je faire ça? En fait, j'ai utilisé une belle soupe pour extraire la chaîne ci-dessus d'un forum. Maintenant, je préférerais peut-être que l'expression régulière supprime la partie.

48
Wenhao.SHE
import re
re.sub('<.*?>', '', string)
"i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"

Le re.sub fonction prend une expression régulière et remplace toutes les correspondances de la chaîne par le second paramètre. Dans ce cas, nous recherchons toutes les balises ('<.*?>') et les remplacer par rien ('').

Le ? est utilisé dans re pour les recherches non gourmandes.

En savoir plus sur le re module .

95
juliomalegria
>>> import re
>>> st = " i think mabe 124 + <font color=\"black\"><font face=\"Times New Roman\">but I don't have a big experience it just how I see it in my eyes <font color=\"green\"><font face=\"Arial\">fun stuff"
>>> re.sub("<.*?>","",st)
" i think mabe 124 + but I don't have a big experience it just how I see it in my eyes fun stuff"
>>> 
14
Abhijit