2017-11-18 206 views
-1

我想用另一個表達式來替換文本中所有不敏感短語的出現,其中包含建立的短語。例如:java replaceAll具有創建值

String searchQuery = "word";  
String source = "I want find WORD case insensitive, and change fonts of this word"; 
System.out.println(source.replaceAll("(?i)" + searchQuery, "<font color='red'>" + searchQuery + "</font>")); 

我想得到「我想找到WORD不區分大小寫,並改變這個詞的字體」。 但實際上第一個「WORD」變成了「單詞」,因爲我把它取代了錯誤。 如何將其替換爲原始單詞。

+0

答案下面可以立即解決的問題,但總的來說,如果你需要更新一些HTML你應該考慮使用一個解析器。 –

回答

0

您可以使用$0在替換字符串中引用匹配的值:

source.replaceAll("(?i)" + searchQuery, "<font color='red'>$0</font>")