🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #1356

Re: Extracción de substring

#1356
From: Cristian Gutierrez
Date: Wed, 18 Oct 2006 23:10
49 lines
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-mail
References: <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=