Estoy tratando de hacer coincidir texto como sp { ...{...}... }
, donde las llaves se pueden anidar. Esto es lo que tengo hasta ahora:Regex con expresión recursiva para unir llaves anidadas?
my $regex = qr/
( #save $1
sp\s+ #start Soar production
( #save $2
\{ #opening brace
[^{}]* #anything but braces
\} #closing brace
| (?1) #or nested braces
)+ #0 or more
)
/x;
simplemente no puede conseguir que se corresponde con el siguiente texto: sp { { word } }
. ¿Alguien puede ver lo que está mal con mi expresión regular?
Justo lo que necesitaba. –
Por lo que puedo decir, la expresión regular no permite espacios alrededor de las llaves (lo siento por la rima) por lo que el caso de prueba debería fallar. ¿Que pasa con eso? – tripleee
Hmmm ... Esto termina tomando para siempre algunas coincidencias parciales, como esta: 'sp {palabra {(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa)}'. –