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;
}
结果

同理,其他提取括号、中括号的内容,只需要把花括号化成对应的符号即可
注意:此方法不适用符号里还有符号的获取
本文介绍了一种使用正则表达式从字符串中提取花括号内内容的方法,并提供了具体的Java实现代码。该方法适用于单层嵌套的花括号,对于多层嵌套的情况不适用。
1332

被折叠的 条评论
为什么被折叠?



