通过匹配给定字符串中的模式来获取字符串数组

时间:2009-11-10 07:36:48

标签: java regex

我有一个模式@@{}并给出一个字符串,我需要找出大括号之间的所有字符串。

示例: 如果我的字符串是Hi This is @@{first} and second is @@{second} along with third @@{third} string

我期望的输出是一个由元素组成的字符串数组:

first   
second  
third

我的Java代码如下:

Pattern p = Pattern.compile("\\@\\@\\{(.+?)\\}");    
Matcher match = p.matcher("Hi This is @@{first} and second is @@{second} along" +
                          "with third @@{third} string");
while(match.find()) {
    System.out.println(match.group());   
}

但我得到的输出是

@@{first}   
@@{second}  
@@{third}

请指导我如何获得所需的输出以及我正在做的错误

1 个答案:

答案 0 :(得分:7)

match.group()更改为match.group(1)。此外,@不需要转义。