我有以下字符串(str):
String str="${name}/${family}/${child}/${fname}"
我在java中使用什么正则表达式模式来获取" $ {"之间的所有子串。和"}"并将它们保存在arraylist中, 所以结果将是一个包含以下值的数组列表:" name"," family"," child"," fname"
答案 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("/")));