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"+">"
.
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
.128013beqn49vi+3mo5_tx;PhklpwTf(: cga=ry0FS6u/72)s18d050V0c0p0F0i0v0S0C0D0v0F0S0S0G010p0i0w010406050S0N0l0l0F0H0I040L0m0v0N0:0m0e050O0`0|0~100^0w04051g191j0O1g0^0V0i0h0(0*0,0.0t0i0E0t0v1x0t0p0?050Z0b0v0c1s0+0-011w1y1A1y0p1G1I1E0p0H1h0p0t0(130S0w0F0e0.0Q011K1u010z0#0c0e0F0l0c1E1%1)1.1M1;1I1@1_0?0a0C0s0H0m0w0m0S0i160e0C0X1#0H0H0c0D2e191|0e1h0O1Z2r1W1Y1X1F0V1~0.1A0e1?2b1E1p1r0)1L2B0i2D0e0m2H1E0w2k1h2p2r2V0_1(2f2J1/2O0H0}0v0?0C0T2o2Z0@2Y1}2#1M2%2)2+0Q2.1)2:2p2A012^0F2*040C0k2|2q0^2 2?0.32340C0f382~2Z303e2+0n3i3a3k3c310m2(332+0M3p2;2!1t2@3u2_350P3z3b3C3d3E3w350U3I3r3K3t3v3f0g3Q2=3S3m040T0J3X3B2K3T3F0T2-1a2/1k2T192H2u0V1Y2z3s0D2P1`1h3@1i3=2X3/2}053}0X2U3R3*0u0?0X0z3i3A300x2+4h3J3*0e0z0?0p0c0q4s0o0b0H154m4b1/0=040A4A3Y4o0?1C0l0v4G3)4C0?0R0B3p0C4U0C4i3s0e0?2k0`0v0Z0p3i4W4n1/0m0?0G4*4X3S0S1,04020d0N0m0p0r4`4|4~4T4V4=4I040b330i0S0c4;4,1M4.044:452q4+4B1M0u0D0?0K335b534U551/4d040z3u5d5m3d0?0D5C4H4-4k042M5H4O2@4J0p4L4N304D4S5j0@4V5Z5l5I5n0?0i4g5X5#5O5E045G5+5w5f4/5i2V5,304@0?504}4 4%4 4{5 5T3s5V5u5!5Z5=5.581A5t5;5e0.5g5^2/5`3s5o0?0y4y5c5X06695v6h015y0c1A5*5_6b315F5N306j6k2}6m4?4^5~4~020E6Q63525X6E676t6v5!6E4Z57596f6D6x6j6H6n5p045r0$6s2V6u6v6E6z6B6.3S0m5K2O4)6g5D6F6(6e6@3:6x6Y6^6!6a6x6%4#0N4%0F736+755g0j6K5k6$6G6Z546x5y2k0p0N0H18745$5.7i7k7m2/0^0O480c2r2S7O3?1q3^2u2x2s0F1H7R0O3@7L0X0Z0#0S04.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)