将String中的方法名称替换为方法的结果

时间:2015-01-12 14:29:16

标签: java replace

在一个属性文件中,我正在加载一个包含(带分隔符和正则表达式)方法名称的String,我想从Java动态调用它。

例如:"%getProductName%-%GetProductCode%[-]*[0-9]*\.(.+)"

当从属性文件中读取String时,我想在调用方法时将方法名称(在%%之间)替换为它们的返回值。

但我不太确定如何在Java(最佳实践)中完成以下操作: - Parse string&检索所有%methodNames%变量。

在检索String中定义的不同方法之后,我将使用Reflection检索结果并在原始String中替换此值。

我只是在寻找一种关于解析String并检索不同%methodNames%的快速方法。

感谢您的任何建议!

1 个答案:

答案 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