/ / Regex per ottenere stringhe in parentesi graffe esterne contenenti più parentesi graffe interne: javascript, regex, parentesi graffe

Regex per ottenere stringhe in parentesi graffe esterne contenenti più parentesi graffe interne: javascript, regex, parentesi graffe

ho bisogno di trovare la regex per darmi una stringa in parentesi graffe, dove la stringa contiene anche parentesi graffe. Questa è la stringa è come

input{
stdin {
type => "stdin-type"
}
file {
type => "file"
}
}

output {
stdout { }
}

Quello che voglio è ad esempio solo la parte di input. Il mio ultimo tentativo è stato:

input{([sS]*)n}

Funziona, quando c'è solo una coppia interna diparentesi graffe e una nuova riga prima dell'ultima parentesi graffa, ma potrebbe non essere sempre così. E potrebbero esserci ancora più elementi interni con parentesi graffe. Quindi ho bisogno di qualcosa di più flessibile. Qualcosa con un contatore aperto o simile.

E ne ho bisogno per javascript.

Forse non è eseguibile con regex ??

Idee ben accette

tmoe

risposte:

0 per risposta № 1

Avere la logica della regex per abbinare i pattern annidati potrebbe portarti in un incubo e la regex potrebbe non essere lo strumento giusto per questo.

In base alla tua espressione regolare, posso apportare alcune modifiche e utilizzare questo:

input{([sS]*?)^}

Demo di lavoro

Utilizzerà la linea di partenza con } come il delimitatore finale che potrebbe risolvere il tuo problema specifico, tuttavia la regex potrebbe non essere la migliore risposta al tuo problema.