我面臨String類的replaceAll方法的奇怪行爲。String的replaceAll方法的奇怪行爲
我有一個包含以下數據
keyRPT1={keyRPT11=01|keyRPT19=01}|keyRPT3={keyRPT11=03|keyRPT19=01}|keyRPT8={keyRPT11=08|keyRPT19=01}
我下面寫代碼的字符串緩衝區,以取代"keyRPT11=08|keyRPT19=01"
與"keyRPT11=08|keyRPT19=2"
我使用下面的代碼爲
String complementaryInformation = "keyRPT1={keyRPT11=01|keyRPT19=01}|keyRPT3={keyRPT11=03|keyRPT19=01}|keyRPT8={keyRPT11=08|keyRPT19=01}";
complementaryInformation = complementaryInformation.replaceAll("keyRPT11=08|keyRPT19=01","keyRPT11=08|keyRPT19=2");
的replaceAll給予我意想不到的輸出
keyRPT1={keyRPT11=01|keyRPT11=08|keyRPT19=2}|keyRPT3={keyRPT11=03|keyRPT11=08|keyRPT19=2|keyRPT8={keyRPT11=08|keyRPT19=2|keyRPT11=08|keyRPT19=2}
當我使用替換法的話,我會得到正確的輸出
keyRPT1={keyRPT11=01|keyRPT19=01}|keyRPT3={keyRPT11=03|keyRPT19=01}|keyRPT8={keyRPT11=08|keyRPT19=2}
任何想法的傢伙?
但同樣的工作,當我打電話替換方法。爲什麼是這樣? –
@MahendraAthneria:見Rubrick的回答。 'replace'不使用正則表達式。如果您對兩種方法行爲不同的原因感到困惑,請先參閱文檔**。 –
@Mahendra:'replaceAll()'方法將正則表達式作爲第一個參數。 'replace()'方法不會將regex作爲參數。 –