我想裁剪一部分字符串:
" this is Test [ABC:123456] Sting with multiple properties [ABC:98765] ..."
所以在结果中我想在“[]”之间裁剪字符串。 {这里ABC:12345和ABC:98765} 注意可以有n个属性。 什么是获得结果的最佳方式。
答案 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("\\[[^\\]]*\\]", "");
<强>解释强>
\[
与左括号匹配[^\]]*
匹配任何不是右括号的字符\]
与结束括号相匹配