我正在寻找一个Java类,对于给定的字符串“$ {animal}跳过$ {target}。”能够提取变量名称,即“动物”和“目标”。
我曾希望在Commons Lang StrSubstitutor有一个方法
getVariables(String str) : List<String>
......但没有这样的运气。
是的我可以自己写这个,但我确定必须有一个存在的第三方库来做到这一点。
答案 0 :(得分:1)
如果你真的想要提取这些值并避免整个库的依赖,你可以做一个简单的正则表达式匹配:
public List<String> getVariableNames(String source) {
List<String> vs = new ArrayList<String>();
Pattern p = Pattern.compile("\\$\\{(\\w+)\\}");
Matcher m = p.matcher(source);
while (m.find()) {
vs.add(m.group(1));
}
return vs;
}
将模式存储为成员变量将提高性能。
答案 1 :(得分:0)
实际上我在为DSL Adapter开发GenericFixture时也在寻找类似的库。
在查看了一些基于库和模板的框架之后,我最终决定自己编写代码。请在DSLAdapter class
{{1}} {{1}}中查看我用于此目的的代码。