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
.128013rv568beF:olg1ma(cd7 tu4S2hws;pkT=30/_P9ixyn)+f050s0h0v0p0O0l0C0u0r0l0p0C0C0H010v0O0E010406050C0w0o0o0p0b0Q040y0k0l0w0/0k0R050K0_0{0}0 0@0E04181f051i0K1i1k1f0@0s0O0c0%0)0+0-0A0O0m0A0l1y0A0v0=050Y0g0l0h1t0*0,011x1z1B1z0v1H1J1F0v0g0k0s0 1G0b1g0v0A0%120C0E0p0R0-0z011L1v010U0!0h0R0p0o0h1F1-1/1@1N1`1J1}1 0=0a0u0M0b0k0E0k0C0O150R0u0W1+0b0b0h0r2k18220R1g0K1)2x0v1%1$1(0s240-1B0R1|2h1F1q1s0(1M2H0O2J0R1Z1r1F0E2q1g2v2x2#0^1.2l2P1^2U0b0|0l0=0u0n2u2)0?2(232+1N2-2/2;0z2@1/2_2v2G012~0p2:040u0I322w0@352|0-383a0u0x3e342)363k2;0d3o3g3q3i370k2.392;0e3v2`2*1u2}3A2 3b0t3F3h3I3j3K3C3b0f3O3x3Q3z3B3l0N3W2{3Y3s040n0J3%3H2Q3Z3L0n2?192^1h2Z182N2A0s2E360r1Z201g3}1j3{2%3^3305420W2!3X3:0F0=0W0U3o3G360B2;4m3P3:0R0U0=0v0h0P4x0L0g0b144r4g1^0;040q4F3(4t0=1D0o0l4L3/4H0=0S0j3v0u4Z0u4n3y0R0=2q0_0l0Y0v3o4#4s1^0k0=0H4/4$3Y0C1=0401014Y4!4`4N040g390O0C0h4_4;1N4?044^4a2w4:4G1N0F0r0=0i3959514Z531^4i040U3A5b5k3j0=0r5A4M4=4p042S5F4T2}4O0v4Q4S364I4X5h0?4!5X5j5G5l0=0O4l5V5Z5M5C045E5)5u5d4@5g2#5*364|0=01024,0D505V5:0-5T5s5Y5X62370=561B5r5/5c0-5e5?2^5^3y5m0=0G4D5a5V06665t6f015w0h1B5(5@684(5-5L366h6i336k4{4}5|0m0v5 5R3y646r6t5Y6C6a576d6B6v6h6F6l5n045p0#6q2#6s6t686x6z6(3Y0k5I2U4.6e5B69556Z6.3_6v6T6/6V676v6D4*0w4,0p6}6#6 5e0T6I5i6X6E6U526v5w2q0v0w0b176~5!5,7c7e7g2^0@0K4d0h2x2Y7I3|1r3~2A2C2y1Y1!2A0p1I7L0K3}7F0W0Y0!0C04.