2016-09-02 3 views
1
String TextValue = "hello{MyVar} Discover {MyVar2} {MyVar3}"; 
String[] splitString = TextValue.split("\\{*\\}"); 

Was ich Ausgang bekommen ist [{MyVar, {MyVar2, {MyVar3] in splitStringWie erhalten Sie Delimeter bei Verwendung von String.split() in Java?

Aber meine Forderung ist es, diese Begrenzer {} heißt [{MyVar}, {MyVar2}, {MyVar3}] zu bewahren.

Erforderlich, um die obige Ausgabe anzupassen.

+1

Sie könnten einen Regex Matcher verwenden und die Gruppen abrufen. – Kelvin

+1

Sie erhalten '[Hallo {MyVar, Discover {MyVar2, {MyVar3}' – Andrew

+2

im Zusammenhang: http://StackOverflow.com/Q/2206378 und http://StackOverflow.com/Q/3777546 –

Antwort

3

Verwendung so etwas wie so:

Pattern p = Pattern.compile("(\\{\\w+\\})"); 
String str = ... 
Matcher m = p.matcher(str); 
while(m.find()) 
    System.out.println(m.group(1)); 

Hinweis, ist der Code über ungetestet aber, dass die Worte in geschweiften Klammern aussehen wird und sie in einer Gruppe platzieren. Es wird dann über die Zeichenfolge gehen und eine beliebige Zeichenfolge ausgeben, die dem obigen Ausdruck entspricht.

Ein Beispiel für den regulären Ausdruck ist verfügbar here.

0

Dank kelvin & npinti.

import java.util.regex.Pattern; 
import java.util.regex.Matcher; 

public class CreateMatcherExample { 
    public static void main(String[] args) { 
     String TextValue = "hello{MyVar} Discover {My_Var2} {My_Var3}"; 
     String patternString = "\\{\\w+\\}"; 

     Pattern pattern = Pattern.compile(patternString); 
     Matcher matcher = pattern.matcher(TextValue); 

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

2 Kleinere Anmerkungen: Wenn eine Antwort Ihr Problem löst, wird diese Antwort als korrekt markiert. Die Veröffentlichung Ihrer Lösung wird normalerweise nur empfohlen, wenn Sie etwas anderes als die bereitgestellten Antworten erhalten. Zweitens, der Code, den Sie verwenden, druckt die Übereinstimmung durch den Ausdruck. Obwohl dies funktioniert, wird es zerbrechen, wenn Sie dem Ausdruck, den Sie nicht im Endergebnis haben möchten, mehr hinzufügen. – npinti

+0

Notierte npinti :) – Nagaraj

Verwandte Themen