Article View: chile.comp.programacion
Article #1356Re: Extracción de substring
From: Cristian Gutierrez
Date: Wed, 18 Oct 2006 23:10
Date: Wed, 18 Oct 2006 23:10
49 lines
3070 bytes
3070 bytes
Hoy en la ma~nana, cbazan__no_spa_m@vtr.net dijo:
> Estimados, hace un buen rato que me estoy cabeceando con el siguiente
> tema (en php) al cu�l no le pego mucho:
> Tengo un string en el que puede venir la siguiente cadena: "palabra1
> OR palabra2 OR palabra3 AND palabra4".
> Tengo que recuperar a u array las palabras que est�n relacionadas por
> los operadores OR y AND, o sea en este caso en el arreglo1 las
> palabras: palabra1,palabra2 y palabra3; y en el arreglo2 las palabras:
> palabra3 y palabra4.
> He tratado de hacerlo con expresiones regulares pero sin resultado.
> Alguien me podr�a iluminar por favor?
Huele a parser de SQL a medio cocinar. Pueden venir estos strings
tambi�n?
palabra OR palabra AND palabra OR palabra
palabra AND palabra OR palabra AND palabra
palabra AND palabra OR palabra OR palabra AND palabra
palabra AND ( palabra OR palabra OR palabra ) AND palabra
palabra OR ( palabra AND ( palabra OR palabra ) )
( palabra AND ( palabra OR palabra ) ) OR ( palabra AND palabra )
Si es as� de arbitrario, te aviso que te vas a quedar corto con
expresiones regulares s� o s� (debe haber un teorema con nombre pomposo
que lo prueba). En ese caso tendr�as que implementar un peque�o parser
usando una "gram�tica", como se puede hacer por ejemplo con el m�dulo
Parse::RecDescent de Perl (o yacc, o alg�n equivalente para PHP).
Por otro lado, si siempre van a ser una serie ORs y ANDs y sin
par�ntesis, entonces lo que quieres hacer es factible, pero no es de
mucha utilidad para evaluar el resultado pues se pierde la asociatividad
(necesitas un �rbol para poder representar la expresi�n, y no dos
arreglos).
Por qu� no nos cuentas mejor qu� necesitas hacer, a ver si a alguien se
le ocurre una soluci�n m�s adecuada?
Salu2,
--
Guti
And while we're at it, why do LarryWall and company think that every
problem can be solved just by throwing syntax at it? I hate perl.
-- TomAnderson, http://c2.com/cgi/wiki?WhyWeHatePerl
Technical Details
Message-ID:
<87vemhqkxz.fsf@guti.cl>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.cec.uchile.cl!not-for-mailReferences:
<eh5bnq$g1i$1@news.nivel5.cl>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,cb64eda49261e625 X-Google-Attributes: gid1593cb,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.cec.uchile.cl!not-for-mail From: Cristian Gutierrez <crgutier@dcc.uchile.cl> Newsgroups: chile.comp.programacion Subject: Re: Extracción de substring Date: Wed, 18 Oct 2006 20:10:48 -0300 Organization: DCC/Uchile Lines: 49 Message-ID: <87vemhqkxz.fsf@guti.cl> References: <eh5bnq$g1i$1@news.nivel5.cl> NNTP-Posting-Host: vpn-client-021.cec.uchile.cl Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: localhost.localdomain 1161213053 7669 172.17.35.21 (18 Oct 2006 23:10:53 GMT) X-Complaints-To: news@localhost.localdomain NNTP-Posting-Date: Wed, 18 Oct 2006 23:10:53 +0000 (UTC) User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) Cancel-Lock: sha1:1XFZamhj9F/qIW4Z/duDIABbdkM=