Sto tentando di abbinare il testo come sp { ...{...}... }
, dove è consentito il nidificazione delle parentesi graffe. Questo è quello che ho finora:Regex con espressione ricorsiva per abbinare le parentesi graffe nidificate?
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;
non riesco proprio a farlo per abbinare il seguente testo: sp { { word } }
. Qualcuno può vedere cosa c'è di sbagliato nella mia espressione regolare?
Proprio quello di cui avevo bisogno. –
Per quanto posso dire, la regex non consente spazi attorno alle parentesi graffe (mi dispiace per la rima), quindi il test case dovrebbe fallire. Cosa succede con quello? – tripleee
Hmmm ... Questo finisce per prendere per sempre alcune corrispondenze parziali, come questa: 'sp {word {(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa}}'. –