一
匹配[]内和外面的内容
Pattern pattern = Pattern.compile("()([^\\[\\]])+\\1");
Matcher matcher = pattern.matcher(str)
匹配所有[]内的内容,例如[@Product_Name@,0,Left][@Quantity@,0,Left][@Price@,0,Left][@Amount@,0,Left]
匹配出 @Product_Name@,0,Left, @Quantity@,0,Left, @Price@,0,Left, @Amount@,0,Left
这种智能匹配当源字符串全是[a][b]。。这种格式,如果是 "产品[a][b]" 的话匹配出来就是“产品”,“a”,“b”
二
匹配[]括号内的内容
String str = "第[@Index@,0,Right]联[234]"; List<String> list = new ArrayList<String>(); Pattern pattern = Pattern.compile("(\\[[^\\]]*\\])"); Matcher matcher = pattern.matcher(str); while(matcher.find()) { list.add(matcher.group().substring(1, matcher.group().length()-1)); } for(String s:list) { System.out.println(s); }
打印结果
@Index@,0,Right 234