2009-07-16 24 views

risposta

44

Poiché le parentesi sono caratteri speciali nelle espressioni regolari delle espressioni regolari, è necessario sfuggirle per abbinarle in modo esplicito.

Ad esempio:

"\\(.+?\\)" 
+3

Si potrebbe desiderare +? se ci possono essere diversi pezzi parenthetized. – glmxndr

+2

Wups, lei. – glmxndr

+0

sì, lei. Metto "?" nel caso di più casi parentesi. @jjnguy: grazie per la spiegazione. Funziona! – Lily

8

È possibile utilizzare la seguente espressione regolare per trovare informazioni tra parentesi:

\([^)]*\) 

le \( partite su una parentesi aperta, il [^)]* corrisponde a qualsiasi numero di caratteri diversi dal parentesi chiusa e le corrispondenze \) su una parentesi destra.

Se stai compreso questo in una stringa di Java, è necessario sfuggire i \ personaggi come la seguente:

String regex = "\\([^)]*\\)"; 
3
String foo = "bar (baz)"; 
String boz = foo.replaceAll("\\(.+\\)", ""); // or replaceFirst 

boz è ora "bar "

11
String foo = "(x)()foo(x)()"; 
String cleanFoo = foo.replaceAll("\\([^\\(]*\\)", ""); 
// cleanFoo value will be "foo" 

È possibile che questo rimuove vuoto e parentesi non vuota da entrambi i lati della stringa.

regex semplice:

\([^\(]*\)

È possibile verificare qui:. http://www.regexplanet.com/simple/index.html

Il mio codice si basa su risposte precedenti

Problemi correlati