• Publicidad

Armar expresión regular

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

Armar expresión regular

Notapor jimr1984 » 2014-12-08 11:59 @541

Saludos, estimados.
Tengo el siguiente problema:

Necesito armar una expresión que me extraiga un valor de la siguiente cadena:

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <a href="ver-mas.php?id=2e9d31b782c5a635da5ccd84ba152dba&seccion=&division=&clase=&rubro=&depto=07&page=&searchSW=1" class="link1">+ Ver más</a>
  2.                                    
  3.                     <a href="ver-mas.php?id=af9fcc5a872af09fcb36da6cbf56ee2c&seccion=&division=&clase=&rubro=&depto=07&page=&searchSW=1" class="link1">+ Ver más</a>
  4.                                        
  5.                     <a href="ver-mas.php?id=e42afde8163eaec428b4c185136ba2c3&seccion=&division=&clase=&rubro=&depto=07&page=&searchSW=1" class="link1">+ Ver más</a>
  6.                                        
  7.                     <a href="ver-mas.php?id=5b243e85fd95f8a3ba1cd60a9f3ffa2a&seccion=&division=&clase=&rubro=&depto=07&page=&searchSW=1" class="link1">+ Ver más</a>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

valor a extraer es : 2e9d31b782c5a635da5ccd84ba152dba

Tengo una aplicación que se conecta a una página web y de ella debe extraer esos valores.

Mi código ejemplo con el que intento crear la expresión es:

if ($content =~ /ver-mas.php.?id=\(.+)/)
{
print $1."\n";

}

Saludos...
Última edición por explorer el 2014-12-08 14:32 @647, editado 1 vez en total
Razón: sgte => siguiente; expresion => expresión; pagina => página; cod => código; expres => expresión; puntos suspensivos;
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: Armar expresión regular

Notapor explorer » 2014-12-08 15:36 @691

La cadena que buscas está rodeada por 'id=' y por '&', así que podemos hacerlo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if ($content =~ /id=(.+?)&/) {
  2.     say $1;
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Es importante poner el modificar no-avaricioso, para impedir que la capture se quede con más cadena que la que buscamos. Con el '?' le indicamos que se pare la captura justo antes del primer '&' que encuentre.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Armar expresión regular

Notapor jimr1984 » 2014-12-09 07:23 @349

Muchas gracias, estimado.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341


Volver a Básico

¿Quién está conectado?

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