2017-11-07 3 views
0

Ich habe die folgende Zeichenfolge:Wie ein Teil mit Regex in Java extrahieren

String xmlnode = "<firstname id="{$person.id}"> {$person.firstname} </firstname>"; 

Wie kann ich einen regulären Ausdruck schreiben, um die Daten innerhalb der {$STRING_I_WANT}

Der Teil I ohne {$} ist, muß zu extrahieren, wie kann ich das erreichen?

+0

'[\ {] [\ (*.?)}]' - Full Match Klammern enthält, aber wenn Sie die Daten wollen innerhalb dann das Mögliche Gruppenspiel – user

+0

doppelte Verwendung von [Wie extrahiert man einen Teilstring mit Regex] (https://stackoverflow.com/questions/4662215/how-to-extract-a-substring-using-regex) – Dukeling

Antwort

-1

Sie können diese regex verwenden \{\$(.*?)\} mit Muster wie folgt aus:

String xmlnode = "<firstname id=\"{$person.id}\"> {$person.firstname} </firstname>"; 

Pattern pattern = Pattern.compile("\\{\\$(.*?)\\}"); 
Matcher matcher = pattern.matcher(xmlnode); 

while (matcher.find()) { 
    System.out.println(matcher.group(1)); 
} 

Hinweis: Sie haben jedes Zeichen {$} mit \ zu entkommen, weil jeder ein Sonderzeichen in regex ist.

Ausgänge

person.id 
person.firstname