Ecrire un programme en gras et surligné [Fermé]

Signaler
Messages postés
3
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
30 mars 2019
-
Messages postés
5528
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
5 mai 2021
-
Bonjour,

J'ai un programme à faire sur perl permettant de mettre en caractères gras surlignés de jaune la séquence finale ité sur la forme fléchie des noms (exemples : familiarité/NOM/familiarité).
La balise à insérer dans la fonction de substitution, pour surligner la séquence ‘ité’ en jaune et la mettre en gras, est la suivante :

<b style="background:yellow;">ité</b>
Voici le programme que j'ai créé:

print "<x-html><html><body>\n";
while(<>) {
chomp;
$ligne=$_;
$ligne =~ s/NOM/ite\/<b style="background:yellow;">ité</b>/g;
print "$ligne <br> \n";
}
print "</body></html></x-html>\n"
;



J'ai un problème car ce programme ne fonctionne pas, est-ce que quelqu'un pourrait m'expliquer comment faire pour que celui-ci fonctionne correctement et que j'obtienne le résultat demandé?
Merci d'avance.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Messages postés
5528
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
5 mai 2021
933
Salut,

Le slash doit être échappé dans la regexp, car il est le délimiteur par défaut de ses différentes parties. Tu ne le fais que pour un slash, et pas pour celui contenu à la fin sur "</b>" (que tu devrais vouloir, en toute logique, échapper).

Si on corrige ta regexp en échappant "</b>" comme cela "<\/b>", la regexp
s/NOM/ite\/<b style="background:yellow;">ité<\/b>/g
signifie que :

- tu cherches toutes les occurrences de "NOM"
- tu les remplaces par "ite/<b style="background:yellow;">ité</b>"

En fait, je doute que cela soit vraiment ce que tu veux faire.

Le plus simple est que tu donnes plusieurs exemples de texte lignes brutes complètes pouvant se trouver dans $ligne et que tu donnes le résultat à obtenir pour chacune.


Dal