Escribe un programa en negrita y subrayado

london1854 Mensajes publicados 3 Estado Miembro -  
[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

Tengo un programa para hacer en perl que permite poner en negrita y resaltado en amarillo la secuencia final atada a la forma flexionada de los nombres (ejemplos: familiaridad/NOM/familiaridad).
La etiqueta que hay que insertar en la función de sustitución, para resaltar la secuencia ‘ité’ en amarillo y ponerla en negrita, es la siguiente:

<b style="background:yellow;">ité</b>
Aquí está el programa que he creado:

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"
;

Tengo un problema porque este programa no funciona, ¿alguien podría explicarme cómo hacerlo para que funcione correctamente y obtenga el resultado pedido?
Gracias de antemano.
EDIT : Añadido de las etiquetas de código (coloración sintáctica).
Explicaciones disponibles aquí : AQUÍ

Gracias por pensarlo en tus próximos mensajes.

1 respuesta

[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   1 108
 
Hola,

El slash debe escaparse en la regexp, porque es el delimitador por defecto de sus diferentes partes. No lo haces solo para un slash, y no para el que está contenido al final en "</b>" (que en lógica deberías querer, con razón, escapar).

Si corregimos tu regexp escapando "</b>" así "<\/b>", la regexp
s/NOM/ite\\/<b style="background:yellow;">ité<\/b>/g
significa que :

- buscas todas las ocurrencias de "NOM"
- las reemplazas por "ite/<b style="background:yellow;">ité</b>"

En realidad, dudo que eso sea realmente lo que quieres hacer.

Lo más simple es que des varios ejemplos de texto, líneas completas sin formato que puedan aparecer en $ligne y que des el resultado deseado para cada una.

Dal
0