Signaler

Ecrire un programme en gras et surligné

Posez votre question london1854 2Messages postés mardi 9 avril 2013Date d'inscription 31 octobre 2017 Dernière intervention - Dernière réponse le 8 nov. 2017 à 09:19 par [Dal]
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.
Utile
+0
plus moins
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !