我将值存储在键/值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
}
答案 0 :(得分:0)
在以$开头时,我必须在返回的键值中添加“\”,并使用.replaceFirst更改.replaceAll:)
感谢提示家伙们!