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

ryh*_*h12 0 java regex string arraylist

我有以下字符串(str):

 String  str="${name}/${family}/${child}/${fname}"
Run Code Online (Sandbox Code Playgroud)

我在java中使用什么正则表达式模式来获取“${”和“}”之间的所有子字符串并将它们保存在一个arraylist中,因此结果将是一个具有以下值的数组列表:“name”、“family”、“孩子”,“名字”

Ell*_*sch 5

你可以编译一个Patternwith"\\$\\{(\\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);
Run Code Online (Sandbox Code Playgroud)

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

System.out.println(Arrays.asList(str.replaceAll("[\\$\\{\\}]??", "").split("/")));
Run Code Online (Sandbox Code Playgroud)