Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/08/2011, 18:39
batillus69
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Expresiones regulares recursivas

He probado lo de añadir un nuevo caso | (OR) de la siguiente manera:

Código PHP:
Ver original
  1. $re = '/\{\{((infobox|[^{}]*|(?R))*)\}\}/is';

pero no funciona porque creo que la expresión [^{}]* ya selecciona cualquier cosas que no sean paréntesis (incluyendo dicha palabra).

También he probado con:

Código PHP:
Ver original
  1. $re = '/\{\{infobox(([^{}]*|(?R))*)\}\}/is';
  2. $re = '/\{\{(?=infobox)(([^{}]*|(?R))*)\}\}/is';

La cuestión es que tengo que forzar que empiece por "{{infobox" que le siga cualquier cosa y termine con }} algo como: {{infobox subpatrón}}

subpatrón --> cualquier cosa incluso llaves anidadas...
{{infobox | () {{}} mas palabras}} --> OK
{{willy {{esto tambien}} wonka}} --> no empieza por {{infobox
{esto tambien} --> no tiene dos llaves
{{infobox {{lo que sea}} mas }} --> OK

Creo que es un matiz que no termino de ver...

Saludos!!

Saludos