在一个属性文件中,我正在加载一个包含(带分隔符和正则表达式)方法名称的String,我想从Java动态调用它。
例如:"%getProductName%-%GetProductCode%[-]*[0-9]*\.(.+)"
当从属性文件中读取String时,我想在调用方法时将方法名称(在%%之间)替换为它们的返回值。
但我不太确定如何在Java(最佳实践)中完成以下操作:
- Parse string&检索所有%methodNames%
变量。
在检索String中定义的不同方法之后,我将使用Reflection检索结果并在原始String中替换此值。
我只是在寻找一种关于解析String并检索不同%methodNames%
的快速方法。
感谢您的任何建议!
答案 0 :(得分:0)
您可以尝试这样的正则表达式:
public static void main(String[] args) {
String s = "%getProductName%-%GetProductCode%[-]*[0-9]*\\.(.+)";
Pattern p = Pattern.compile("%(.*?)%"); // capturing group to extract data between ()s
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
}
}
O / P:
getProductName
GetProductCode