1
我有我應該維護的代碼庫的這段代碼片段。用參數/標記替換正則表達式字符串
String number = "1";
String value = "test";
String output = "";
output = value.replaceAll("\\Q{#}", number);
的output
住宿爲「測試」的價值,我只能猜測這是什麼代碼是應該做的:的number
值應被追加到無論是在價值。也許像這樣:test1
或完全用數字替換該值。
我發現\\Q
是引用所有內容的正則表達式選項,直到\\E
,但沒有\\E
。無論如何,它根本沒有做任何事情,我想知道我是否監督了一些事情?
正則表達式匹配一個文字'{#}'。如果你的'value'是'test {#}','{#}'將被替換爲數字。請參閱[本演示](https://ideone.com/Zizftn)。 E \只是停止引用,如果缺失,整個模式將被引用,就是這樣。 –
AFAIK'#'在正則表達式中沒有特殊字符,所以假設Java正則表達式理解'\ Q',它將查找不存在於'value'中的字符串'{#}'。除此之外,你的猜測是錯誤的:'replaceAll'用'number'取代匹配 - 如果你想在最後附加一些東西,你需要匹配輸入的結尾,例如只需使用表達式'$'。 – Thomas
我在帖子中看不到問題。你在找什麼? –