一
匹配[]内和外面的内容
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