2010-03-08 10 views
5

correlati al mio previous question, ho una stringa sul seguente formato:un'espressione regolare per estrarre il testo tra una parentesi quadre o graffe

this {is} a [sample] string with [some] {special} words. [another one] 

Qual è l'espressione regolare per estrarre le parole all'interno di forma quadrata o parentesi graffe, es.

{is} 
[sample] 
[some] 
{special} 
[another one] 

Nota: nel mio caso di utilizzo, le parentesi non possono essere nidificate. Vorrei anche conservare i caratteri che li racchiudono, in modo da poter distinguere tra loro durante l'elaborazione dei risultati.

+0

Che cosa succede se la stringa è 'blah [{] blah {]}'? – kennytm

risposta

7

sufficiente o (|) le cose diverse che si desidera abbinare insieme:

\[.*?\]|\{.*?\}

2

Questo sembra funzionare:

[[{].*?[}\]] 

o questa:

\[.*?\]|{.*?} 

Se si desidera catturare i casi menzionati nei commenti qui sotto.

È possibile utilizzare un tester di regex online per provare queste cose. Penso che http://gskinner.com/RegExr/ sia una delle opzioni più facili da usare.

+1

Ciò non riuscirà nel caso di [...}. –

+0

Modificato per rimuovere un '' 'estraneo. –

+0

@Robert, ha detto che non succede nel suo testo, giusto? –

Problemi correlati