• Publicidad

expresión simple en grep, con numeros no me funca

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

expresión simple en grep, con numeros no me funca

Notapor monoswim » 2006-02-21 09:20 @430

if (grep { /$i/ } @{$rojos}) {

en @{$rojos} tengo los números que tiene que colcoar en rojo, en $i voy teniendo los distintos días del mes...(es un bucle: 1,2,3,4,5,...30,31)

pero si tengo el número rojo 31 me imprime en rojo tanto el 3 como el 1 como el 31 !!! intenté con ^y $, con paréntesis, corchetes, y demás pero no llego a solucionarlo...

A mover sus cabezotas, si alguien lo saca se lo agradezco enormemente !!!

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Publicidad

Re: expresión simple en grep, con numeros no me funca

Notapor explorer » 2006-02-21 14:23 @641

Código: Seleccionar todo
perl -le '$rojo=[2,4,6,12,13,23,31]; foreach $i ( 1..31 ) { if ( grep { $i == $_ } @{$rojo}) {print "Rojo $i"} }'
Código: Seleccionar todo
Rojo 2
Rojo 4
Rojo 6
Rojo 12
Rojo 13
Rojo 23
Rojo 31

Otra forma de colorear días del mes:
Código: Seleccionar todo
map { $es_fiesta{$_}=1 } qw( 2 3 13 14 23 31 );

foreach $dia ( 1..31 ) {
    if ( $es_fiesta{ $dia } ) {
        print "Fiesta dia $dia!";
    }
}
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor monoswim » 2006-02-21 16:07 @713

como siempre, la respuesta corta y al pie, si que sabes de estas cosas !!!

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor kidd » 2006-02-21 18:45 @823

Hola:

Yo la opción que te recomiendo es la última que te da explorer, la de crear un hash con las fechas especiales:

Código: Seleccionar todo
map { $es_fiesta{$_}=1 } qw( 2 3 13 14 23 31 );

    for my $dia ( 1..31 ) {
        if ( defined($es_fiesta{ $dia }) ) {
            print "<font color=\"red\">$dia</font>";
        }     
    }



SALUDOS
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor monoswim » 2006-02-21 21:03 @919

si che, porque eso de usar grep en cada iteración de los días me imagino se le hace pesadito al server...

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 20 invitados