如說你是丟棄的結果,更換並不需要一個正則表達式只是一個文字字符序列進行更換,所以你不要」噸需要定界符
但和的replaceAll做replaceFirst採取一個正則表達式的字符串(糟糕設計)
逃脫,順便說一句這是建議使用Patter.quote(String)
和Matcher.quoteReplacement(String)
以確保沒有怪異事情是使用正則表達式時發生的事情(這是一個更容易一點,並確保沒有錯誤逃脫字符)
這裏的時候只出現一次,必須更換
String delimiter = "**";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Map.Entry<String, String> entry : mp.entrySet()) {
html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}
在這裏發生的時候多次出現必須更換
String delimiter = "**";//unescaped because I'm handling that in my replace
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Map.Entry<String, String> entry : mp.entrySet()) {
html = html.replaceAll(Pattern.quote(delimiter + entry.getKey()+ delimiter), Matcher.quoteReplacement(entry.getValue()));
}
你怎麼知道它不工作?您不打印或將其存儲在任何地方。 – CoolBeans 2011-06-02 19:21:47