如何在Java中从String中裁剪多个文本?

时间:2014-06-27 14:07:42

标签: java regex string substring

我想裁剪一部分字符串:

" this is Test [ABC:123456] Sting with multiple properties [ABC:98765] ..."

所以在结果中我想在“[]”之间裁剪字符串。 {这里ABC:12345和ABC:98765} 注意可以有n个属性。 什么是获得结果的最佳方式。

3 个答案:

答案 0 :(得分:1)

public static void main(String[] args) {
        String input = "test bla [ABC56465:asd] asdasdqwd [DEF:345]";
        Pattern pattern = Pattern.compile("\\[(.*?)\\]");
        Matcher match = pattern.matcher(input);
        while(match.find()){
            System.out.println(match.group());
        }
    }

按照Niels的教程进行操作。这可能是解决方案。 在没有" []"的情况下获得输出只需替换:

System.out.println(match.group());

使用:

System.out.println(match.group(1));

如评论中所述。

答案 1 :(得分:0)

您需要定义模式并进行正则表达式匹配,从而提供所需的组。

请参阅http://tutorials.jenkov.com/java-regex/matcher.html

有关正则表达式的教程。 (特别是find()start()和end()部分)

在你的情况下,模式应该非常简单。

答案 2 :(得分:0)

在Java中,您可以这样做:

String resultString = subjectString.replaceAll("\\[[^\\]]*\\]", "");

<强>解释

  • \[与左括号匹配
  • 否定字符类[^\]]*匹配任何不是右括号的字符
  • \]与结束括号相匹配
  • 我们用空字符串替换