2017-11-18 205 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>")