【问题标题】:Java code to capture each keyword in square bracket?Java代码捕获方括号中的每个关键字?
【发布时间】:2014-11-30 17:25:25
【问题描述】:

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

输出显示:

[Eiwitten, 4,8, g]

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

Eiwitten
4,8
g

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

提前致谢!!

【问题讨论】:

  • \[(.+)\] 然后split?

标签: java regex split


【解决方案1】:

试试这个。

 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]);
        }

【讨论】:

  • 我得到了解决方案:Eiwitten 4,8 g。谢谢米娅。
【解决方案2】:

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

如果你想使用单一模式:

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

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

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

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

【讨论】:

    【解决方案3】:

    你也可以使用这个模式来捕获", "之间的文本

    , |([^\]\[]+?)(?=, |\])
    

    Demo

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

    【讨论】:

      猜你喜欢
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 2019-05-20
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多