Article View: es.comp.os.linux.programacion
Article #8187Re: Problemilla con expresiones regulares
From: Angel Luis Jiménez Martínez
Date: Fri, 27 Dec 2002 22:41
Date: Fri, 27 Dec 2002 22:41
40 lines
2777 bytes
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-mailReferences:
<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)