使用正则表达式模式(JAVA)获取两个表达式之间的所有子字符串

时间:2017-01-31 04:22:24

标签: java regex string arraylist

我有以下字符串(str):

 String  str="${name}/${family}/${child}/${fname}"

我在java中使用什么正则表达式模式来获取" $ {"之间的所有子串。和"}"并将它们保存在arraylist中, 所以结果将是一个包含以下值的数组列表:" name"," family"," child"," fname"

1 个答案:

答案 0 :(得分:4)

您可以使用Pattern 编译 "\\$\\{(\\w+)\\}"然后循环以构建List之类的,

String str = "${name}/${family}/${child}/${fname}";
Pattern pat = Pattern.compile("\\$\\{(\\w+)\\}");
Matcher mat = pat.matcher(str);
List<String> al = new ArrayList<>();
while (mat.find()) {
    al.add(mat.group(1));
}
System.out.println(al);

,就像我在评论中所说,只有一行像

System.out.println(Arrays.asList(str.replaceAll("[\\$\\{\\}]‌​", "").split("/")));