对于以$开头的hashmap键的replaceAll

时间:2012-12-24 13:25:36

标签: java regex hashmap

我将值存储在键/值hashmap中。当一个键的值以$开头,并且我执行regex replaceAll调用时,会抛出异常。 知道为什么以及如何防止这种异常?当值包含/以“普通”文本

开头时没有错误
public static String ReplaceVariables(String argumentValue){
    Pattern p = Pattern.compile("\\$\\{.*?\\}"); // find any text surrendered by "${" and "}"
    while (true)
    {
        Matcher m = p.matcher(argumentValue);
        if (!m.find()){
            break; // no match found
        }
        String varName = m.group();
        String varValue = GlobalUtilities.getVariable(varName); //get the hashmap value of the "varName" key
        argumentValue = m.replaceAll(varValue); // replace all ${....} found by its hashmap value
    }
    return argumentValue; // return the new string
}

1 个答案:

答案 0 :(得分:0)

在以$开头时,我必须在返回的键值中添加“\”,并使用.replaceFirst更改.replaceAll:)

感谢提示家伙们!