expresiones regulares

Esteban Manchado Velázquez zoso en demiurgo.org
Mie Jul 31 17:58:11 CEST 2002


On Wed, Jul 31, 2002 at 03:59:42PM +0200, Attila Saorin wrote:
> buenas tardes,
> 
> estoy aqui, releyendome por segunda vez la documentacion de las expresiones
> regulares y, por ejemplo, no me queda claro como puedo sacar el contenido de
> algo que le pase entre parentesis.
> 
> un ejemplo de lo que le quiero pasar es: 'linux or (sun and bsd)'
> 
> entonces, quiero que por un lado, que lo que esta entre parentesis me lo
> coja por un lado y luego ya lo tratare yo. por cierto, que pasaria si hay
> varios parentesis anidados?  '(sun and (www or http))'

¿Los casos que tienes que tratar son arbitrariamente complicados? En ese caso,
las expresiones regulares no son suficientes (como ser suficientes, lo son,
pero complican mucho el trabajo), y yo tiraría por un analizador sintáctico
completo. No es tan difícil como suena, suponiendo que tengas alguna
herramienta que te automatice el trabajo sucio. Mirando un poquito en Google
encontré una que parece que te vendrá bien. Se llama Yapps, y está en

   http://theory.stanford.edu/~amitp/Yapps/

También está PLY, que parece más completo (y tiene enlaces a otros proyectos):

   http://systems.cs.uchicago.edu/ply/

Por último, parece que el peso pesado de los meta-compiladores de Python es
SPARK, que es el que usa el Parrot (!):

   http://pages.cpsc.ucalgary.ca/~aycock/spark/
   http://gnosis.cx/publish/programming/charming_python_b6.html

En la página oficial de Python tienes un apartado sobre esto:

   http://www.python.org/sigs/parser-sig/

Seguro que alguno te sirve (probablemente el primero, Yapps). Saludos,

-- 
Esteban Manchado Velázquez <zoso*demiurgo*org> - http://www.demiurgo.org
No software patents in Europe! - freepatents.org - proinnova.hispalinux.es
Join Amnesty International - http://www.amnesty.org/actnow
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20020731/1ae2b820/attachment.pgp>


Más información sobre la lista de distribución Python-es