public static void main(String[] args) {
String msg = "PM{第1个花括号}PD{第2个花括号}<{第3个花括号}79~";
ArrayList<String> list = extractMessageByRegular(msg);
for (int i = 0; i < list.size(); i++) {
System.out.println(i+"-->"+list.get(i));
}
}
/**
* 使用正则表达式提取花括号中的内容
* @param msg
* @return
*/
public static ArrayList<String> extractMessageByRegular(String msg){
ArrayList<String> list=new ArrayList<String>();
Pattern p = Pattern.compile("(\\{[^\\}]*\\})");
Matcher m = p.matcher(msg);
while(m.find()){
list.add(m.group().substring(1, m.group().length()-1));
}
return list;
String msg = "PM{第1个花括号}PD{第2个花括号}<{第3个花括号}79~";
ArrayList<String> list = extractMessageByRegular(msg);
for (int i = 0; i < list.size(); i++) {
System.out.println(i+"-->"+list.get(i));
}
}
/**
* 使用正则表达式提取花括号中的内容
* @param msg
* @return
*/
public static ArrayList<String> extractMessageByRegular(String msg){
ArrayList<String> list=new ArrayList<String>();
Pattern p = Pattern.compile("(\\{[^\\}]*\\})");
Matcher m = p.matcher(msg);
while(m.find()){
list.add(m.group().substring(1, m.group().length()-1));
}
return list;
}
结果
同理,其他提取括号、中括号的内容,只需要把花括号化成对应的符号即可
注意:此方法不适用符号里还有符号的获取