用于捕获方括号中每个关键字的Java代码?

时间:2014-11-30 17:25:25

标签: java regex split

我在括号内输出java代码,我需要检索每个关键字     在支架内?

输出显示:

[Eiwitten, 4,8, g]

从中我需要检索每个关键字,如:

Eiwitten
4,8
g

那么请帮助我,如何在java编码中解决?

提前致谢!!

3 个答案:

答案 0 :(得分:0)

Maroun Maroun建议的方式简单而有效,您可以使用它但使用此模式:\\[([^]]+)]

如果您想使用单一模式进行此操作:

(?:\\G(?!\\A)|\\[(?=[^]]*]))(.+?)(?:, |(?=]))

如果你知道方括号是平衡的,你可以缩短:

(?:\\G(?!\\A)|\\[)(.+?)(?:, |(?=]))

注意:这两种模式不允许空项目。

答案 1 :(得分:0)

试试这个。

 String str ="[Eiwitten, 4,8, g]";
        str = str.replaceAll("\\[", "");
        str = str.replaceAll("\\]", "");
        String[] split = str.split(", ");
        for(int r = 0 ; r <split.length ; r++){
            System.out.println(split[r]);
        }

答案 2 :(得分:0)

您也可以使用此模式在", "

之间捕获文字
, |([^\]\[]+?)(?=, |\])

Demo

,               # ", "
|               # OR
(               # Capturing Group (1)
  [^\]\[]       # Character not in [^\]\[]
  +?            # (one or more)(lazy)
)               # End of Capturing Group (1)
(?=             # Look-Ahead
  ,             # ", "
  |             # OR
  \]            # "]"
)               # End of Look-Ahead