![borracho](http://static.forosdelweb.com/fdwtheme/images/smilies/borracho.png)
Antes que nada, gracias por tomarse el tiempo de leer esto y sobre todo de contestarlo. Según yo busque antes, para no duplicar el post, pero si aun así estaba, me disculpo
![Patada](http://static.forosdelweb.com/fdwtheme/images/smilies/footinmouth.png)
Mi duda es, ¿alguien sabe usar patrones recursivos (Compatibles con Perl)?
Tengo un problema específico, obtener texto de un archivo de LaTeX, el cual esta claramente delimitado por un "comando" del estilo \comando{[valores]} y la información que yo quiero es "valores".
Hasta ahí, parece fácil, pero las cosas se complican, cuando \comando, esta dentro de \otro_comando, y dentro de \comando hay varios \mini_comandos. ¿no esta claro? pongo un ejemplo
Código:
Lo que ami me interesa, es el texto en rojo y pensé que tenía resuelto el problema con ¡¡Expresiones regulares y patrones recursivos!! Pero... no entiendo como funciona \otro_comando{ bla bla [...] \comando{valores \mini_comando{[...]} valores } \MAS_comandos{[..]} }
![Stress](http://static.forosdelweb.com/fdwtheme/images/smilies/stress.png)
El ejemplo del manual de PHP (mx.php.net/manual/es/reference.pcre.pattern.syntax.php) es el siguiente:
Para obtener el contenido de de una cadena con paréntesis anidadados se usa el siguiente patron /\( ( ( (?>[^()]+) | (?R) )* ) \)/x, entonces si la cadena tiene "000\ba(dc(fe)(hg(ji)lk)nm)oñ(0000)\ab(cd(ef)(gh(i j)kl)mn)ño(0000)" va encontrar "dc(fe)(hg(ji)lk)nm", y efectivamente lo hace,
Código PHP:
preg_match("/\( ( ( (?>[^()]+) | (?R) )* ) \)/uisx",
"000\\ba(dc(fe)(hg(ji)lk)nm)oñ(0000)\\ab(cd(ef)(gh(ij)kl)mn)ño(0000)",
$keys);
echo $keys[1]; // imprime "dc(fe)(hg(ji)lk)nm"
Si tenemos la cadena "000\ba{dc{fe}{hg{ji}lk}nm}oñ{0000}\ab{cd{ef}{gh{i j}kl}mn}ño{0000}"
yo quiero encontrar el contenido de \ab{[contenido]}.
Si alguien tiene una pista, estaré eternamente agradecida, pues estoy que me jalo los pelos.
Por ultimo, y tal vez me quieran matar, pero el problema ya esta resuelto con una función algo complicada, que busca el comando y pone indices a las llaves "{}", pero me gustara tener la solución con expresiones regulares
Mil gracias
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)