java String一个字符串多次截取两个字符串之间的值

时间:2023-01-07 08:26:06

转自:http://bbs.csdn.net/topics/390367880 的问题。
如有字符串如下,并取出{ }之间的字符串。

String str="adfwe{abc}defg{def}gju{ght}dfdf";

输出效果如下:
java String一个字符串多次截取两个字符串之间的值
像这种就要使用到正则了。

package com.zhenqi.test;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* Created by wuming on 2017/9/13.
*/

public class OffestTest {

public static List<String> match(String s) {
List<String> results = new ArrayList<String>();
Pattern p = Pattern.compile("\\{([\\w]*)\\}");
Matcher m = p.matcher(s);
while (m.find()) {
results.add(m.group(1));
}
return results;
}

public static void main(String[] args){
String str="adfwe{abc}defg{def}gju{ght}dfdf";
List<String> strs=match(str);
for(String str2 : strs){
System.out.println(str2);
}
}
}