• Publicidad

Usar comillas en expresiones regulares

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Usar comillas en expresiones regulares

Notapor BigBear » 2010-09-24 17:59 @791

Hola.

Tengo una duda porque quiero sacar cierta frase en una etiqueta font.
El problema es que quiero siempre usar los '"' porque no quiero usar comillas simples "'".
¿No hay alguna forma de reparar mi código para hacer lo que quiero?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$code = "<font color="red">ssd</font>";
if ($code=~/<font color="red">(.*)</font>/ig) {
    print "$1\n";
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Usar comillas en expresiones regulares

Notapor explorer » 2010-09-24 18:07 @796

Puedes usar la función qq() para entrecomillar de forma doble (o q() para hacerlo de forma simple).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$code = qq(<font color="red">ssd</font>);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En la expresión regular puedes usar las comillas sin problemas.

El problema está en .*, que es avaricioso. Mejor usa .*? . Y cuidado con la opción /g. No lo pongas si realmente no lo vas a usar.

Actualización: wanako, en el siguiente mensaje, descubrió el error: está en el carácter '/' dentro de la expresión regular. Mejor déjalo así:

$code =~ m{<font color="red">(.*?)</font>}i; o así:

$code =~ /<font color="red">(.*?)<\/font>/i;
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

Re: Usar comillas en expresiones regulares

Notapor wanako » 2010-09-24 18:53 @829

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
my $skcode = "<font color=\"red\">ssd</font>";
#                       ^    ^
if ( $skcode =~ /<font color="red">(.*)<\/font>/ig) {
    print "$1\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Edito: ¡explorer me ganó de mano, supongo! :D
Igual sólo estoy de paso; tranquilos, me fui.
wanako
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2010-09-23 11:27 @519

Re: Usar comillas en expresiones regulares

Notapor explorer » 2010-09-25 12:42 @571

No, wanako, el que ganó fuiste tú, porque descubriste el fallo del '/'.

Yo solo reedité mi mensaje después de ver el tuyo. Perdón por no indicarlo.
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


Volver a Básico

¿Quién está conectado?

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