Texte brut issu d'un document HTML

On dispose d'une chaine de caractères représentant une portion de code HTML et on souhaite écrire une fonction texte_brut qui supprime toutes les balises HTML de cette chaîne et renvoie le texte brut qu'il contient.

On rappelle qu'une balise HTML s'écrit sous la forme <nom_balise> ou </nom_balise>.

Si l'on considère par exemple le code html = "<p>un <strong>exemple</strong> de chaine</p>" alors l'appel texte_brut(html) renverra 'un exemple de chaine'.

On admet :

  • qu'un caractère < déclarant une ouverture de balise est toujours suivi plus loin dans la chaîne d'un caractère > ;
  • qu'il n'y a jamais de balises imbriquées.
Exemples
>>> html = "<p>un <strong>exemple</strong> de chaine</p>"
>>> texte_brut(html)
'un exemple de chaine'
>>> html = "<h1>un grand titre en <span style='color: red'>rouge</strong> !</h1>"
>>> texte_brut(html)
'un grand titre en rouge !'
Sur la présentation des tests

Afin d'éviter des problèmes d'affichage de la page, les balises ont été découpées dans le fichier Python.

Ainsi "<p>" devient "<"+"p"+">".

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10
.128013buST3_4l(wnx/8p)aPk0;:Fhors1v7c256mgydi9eft =+050M0P0R0r0N0i0B0S0F0i0r0B0B0T010R0N0p010406050B0c0J0J0r0A0L040d0z0i0c0/0z0l050n0_0{0}0 0@0p04181f051i0n1i1k1f0@0M0N0D0%0)0+0-0y0N0K0y0i1y0y0R0=050Y0b0i0P1t0*0,011x1z1B1z0R1H1J1F0R0b0z0M0 1G0A1g0R0y0%120B0p0r0l0-0G011L1v010Q0!0P0l0r0J0P1F1-1/1@1N1`1J1}1 0=0a0S0s0A0z0p0z0B0N150l0S0W1+0A0A0P0F2k18220l1g0n1)2x0R1%1$1(0M240-1B0l1|2h1F1q1s0(1M2H0N2J0l1Z1r1F0p2q1g2v2x2#0^1.2l2P1^2U0A0|0i0=0S0C2u2)0?2(232+1N2-2/2;0G2@1/2_2v2G012~0r2:040S0f322w0@352|0-383a0S0h3e342)363k2;0H3o3g3q3i370z2.392;0I3v2`2*1u2}3A2 3b0E3F3h3I3j3K3C3b0o3O3x3Q3z3B3l0O3W2{3Y3s040C0u3%3H2Q3Z3L0C2?192^1h2Z182N2A0M2E360F1Z201g3}1j3{2%3^3305420W2!3X3:0t0=0W0Q3o3G360k2;4m3P3:0l0Q0=0R0P0m4x0g0b0A144r4g1^0;040j4F3(4t0=1D0J0i4L3/4H0=0q0w3v0S4Z0S4n3y0l0=2q0_0i0Y0R3o4#4s1^0z0=0T4/4$3Y0B1=0401014Y4!4`4N040b390N0B0P4_4;1N4?044^4a2w4:4G1N0t0F0=0x3959514Z531^4i040Q3A5b5k3j0=0F5A4M4=4p042S5F4T2}4O0R4Q4S364I4X5h0?4!5X5j5G5l0=0N4l5V5Z5M5C045E5)5u5d4@5g2#5*364|0=01024,0v505V5:0-5T5s5Y5X62370=561B5r5/5c0-5e5?2^5^3y5m0=0e4D5a5V06665t6f015w0P1B5(5@684(5-5L366h6i336k4{4}5|0K0R5 5R3y646r6t5Y6C6a576d6B6v6h6F6l5n045p0#6q2#6s6t686x6z6(3Y0z5I2U4.6e5B69556Z6.3_6v6T6/6V676v6D4*0c4,0r6}6#6 5e0U6I5i6X6E6U526v5w2q0R0c0A176~5!5,7c7e7g2^0@0n4d0P2x2Y7I3|1r3~2A2C2y1Y1!2A0r1I7L0n3}7F0W0Y0!0B04.