Java Regex to get Data between curly brackets

后端 未结 2 365
北恋
北恋 2021-01-15 04:52

I am looking for a regular expression to match the text between curly brackets.

{one}{two}{three}

I want each of these as separate groups,

相关标签:
2条回答
  • 2021-01-15 05:01

    You need to use a capturing group ( ) around what you want to capture.

    To just match and capture what is between your curly brackets.

    String s  = "{one}{two}{three}";
    Pattern p = Pattern.compile("\\{([^}]*)\\}");
    Matcher m = p.matcher(s);
    while (m.find()) {
      System.out.println(m.group(1));
    }
    

    Output

    one
    two
    three
    

    If you want three specific match groups...

    String s  = "{one}{two}{three}";
    Pattern p = Pattern.compile("\\{([^}]*)\\}\\{([^}]*)\\}\\{([^}]*)\\}");
    Matcher m = p.matcher(s);
    while (m.find()) {
      System.out.println(m.group(1) + ", " + m.group(2) + ", " + m.group(3));
    }
    

    Output

    one, two, three
    
    0 讨论(0)
  • 2021-01-15 05:10

    If you want 3 groups, your pattern needs 3 groups.

    "\\{([^}]*)\\}\\{([^}]*)\\}\\{([^}]*)\\}"
                  ^^^^^^^^^^^^^
    

    (The middle part is the same as the left and right).

    0 讨论(0)
提交回复
热议问题