• Publicidad

Patrón correcto

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Patrón correcto

Notapor rraulqm92 » 2014-10-21 06:18 @304

Hola,

Necesito coger la dirección incorrecta del correo de "Delivery Status Notification (Failure)".

Para ello me he montado un script que se encarga de acceder a todos los correos con este asunto. El problema es al ejecutar el patrón de búsqueda en el interior del contenido del correo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while ( my ( $html ) = getTextIMAP('Delivery Status Notification (Failure)') ) {
  2.      
  3.    print "entro en primer while \n";
  4.         if ($html) {
  5.                
  6.                 while ( $html =~ /(To: "*?")/gis ) {
  7.                         my $correo = $1;
  8.                        
  9.                        
  10.                         print "correo encontrado. $correo \n";
  11.                         ####enviar correo
  12.                        
  13.                 }
  14.                
  15.                 print "acabo while de búsqueda de TO: \n";
  16.        
  17.         }else{
  18.                 print "error primer if \n";
  19.         }
  20. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


El contenido del correo está en la variable $html y necesito sacar el correo de la línea:

To: "[b][email protected]" <[email protected]>
rraulqm92
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2014-10-07 04:29 @228

Publicidad

Re: Patrón correcto

Notapor explorer » 2014-10-21 11:00 @500

Te falta un '.' en el patrón:

while ( $html =~ /(To: ".*?")/gis ) {

Lo que tenías escrito es "un asterisco que aparece cero o una veces".

De todas maneras, yo lo pondría así:

while ( $html =~ /^To: (.*?)$/gis ) {
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 Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado