🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #8187

Re: Problemilla con expresiones regulares

#8187
From: Angel Luis Jiménez Martínez
Date: Fri, 27 Dec 2002 22:41
40 lines
2777 bytes
Angel Luis Jim�nez Mart�nez <al026635@alumail.uji.es> wrote:
> Saiyine <saiyine@clubdelphi.com> wrote:
>> Buenas

>> Llevo toda la tarde intentando hacerme un peque�o programa que usa como 
>> entrada xml y no consigo dar con la expresion regular que extrae la 
>> informacion si hay mas de un "dato" en la misma linea con el mismo nombre.

>> Resumiendo, se trataria de, dadas dos palabras clave, obtener el texto entre 
>> la primera y la primera aparicion de la segunda, en vez de el 
>> comportamiento "standard" de perl que es devolver el texto entre la primera 
>> y la ultima aparicion de la segunda.

>> Por ejemplo, dada la linea:

>> <info>prueba1234</info><info>blablablabla</info>

>> me gustaria saber una expresion regular que devuelva prueba1234.

>> Despues de toda la tarde buscando infructuosamente en el google, lo unico 
>> que he encontrado es que la expresion que deberia funcionar es:

>> /<info>([^.info]*)</info>/

>> Que deberia dejar en $1 el valor "prueba1234", pero en la practica no 
>> funciona.

>> �Alguna idea?

> $cad= "<info>prueba1234</info><info>blablablabla</info>";
> $cad=~ s/<info>([^<]+)<\/info>.*/$1/;
> print "$cad\n";

> Con el [^<] aseguras que pillas caracteres hasta que encuentra el < del
> primer </info>. Y el .* final sirve para que se "coma" el 
> <info>blablablabla</info> y lo que haya despues.


Otra cosa, casi mejor que uses * en vez de +. Asi no tendras que preocuparte
de casos como "<info></info>".
Technical Details
Message-ID: <auikuc$vme$3@sofora02.uji.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!snoopy.risq.qc.ca!news-out.spamkiller.net!propagator2-maxim!news-in.spamkiller.net!news.telia-iberia.com!news.rediris.es!news.uv.es!sofora01.uji.es!not-for-mail
References: <aui8bh$7ha23$1@ID-84570.news.dfncis.de> <auikma$vme$1@sofora02.uji.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,421d9d514e364efa
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-12-27 14:48:06 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!snoopy.risq.qc.ca!news-out.spamkiller.net!propagator2-maxim!news-in.spamkiller.net!news.telia-iberia.com!news.rediris.es!news.uv.es!sofora01.uji.es!not-for-mail
From: Angel Luis Jiménez Martínez <al026635@alumail.uji.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Problemilla con expresiones regulares
Date: Fri, 27 Dec 2002 22:41:16 +0000 (UTC)
Organization: Universitat Jaume I
Lines: 43
Sender: Angel Luis Jiménez Martínez <al026635@anubis.uji.es>
Message-ID: <auikuc$vme$3@sofora02.uji.es>
References: <aui8bh$7ha23$1@ID-84570.news.dfncis.de> <auikma$vme$1@sofora02.uji.es>
NNTP-Posting-Host: anubis.uji.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: sofora02.uji.es 1041028876 32462 150.128.40.100 (27 Dec 2002 22:41:16 GMT)
X-Complaints-To: news@marti.uji.es
NNTP-Posting-Date: Fri, 27 Dec 2002 22:41:16 +0000 (UTC)
User-Agent: tin/1.4.5-20010409 ("One More Nightmare") (UNIX) (AIX/4-3)