2016-03-28 8 views
-1

Zum Beispiel:

String str = "bla bla ${foo} ${foo1}"; 

Wie Worte "foo" und "foo1" bekommen?

vielleicht meinen String ist:

String str1 = "${foo2} bla bla ${foo3} bla bla"; 

Wie Worte "foo2" bekommen und "foo3"?

+5

Eine Lösung, die eine regex arbeiten verwendet. – Maroun

+4

Welchen Code haben Sie geschrieben? Was tut es? Helfen Sie uns, Ihr Problem zu reproduzieren. – nicomp

+1

Ich würde selbst google nach "Java extrahieren Text zwischen Klammern" suchen. Diese [Antwort] (http://stackoverflow.com/questions/24256478/pattern-to-extract-text-between-parenthesis) erscheint als erstes Ergebnis. –

Antwort

4

Sie können die Regex-Klassen Pattern und Matcher verwenden. Zum Beispiel:

String str = "bla bla ${foo} ${foo1}"; 
Pattern p = Pattern.compile("\\$\\{([\\w]+)\\}"); 
Matcher m = p.matcher(str); 
while(m.find()) { 
    System.out.println(m.group(1)); 
} 
/* Result: 
foo 
foo1 
*/ 
2
Pattern p = Pattern.compile("\\${(.*?)\\}"); 
Matcher m = p.matcher(input); 
while(m.find()) 
{ 
    //m.group(1) is your string. do what you want 
} 

sollte