我有EditText来搜索段落内的searchKeyword
(段落在SQLite数据库中)。
String Contentstr = paragraph.replaceAll(searchKeyword,"<font color=\"red\">" + searchKeyword + "</font>");
txtV.setText(Html.fromHtml(Contentstr));
上面代码高亮这样:
当我搜索“Hi hi”(searchKeyword =“Hi hi
”)时,数据库搜索功能会返回任何字母(我的意思是“hI hi
”或“HI HI
”等等on),它hightligts“Hi hi
”,但将所有其他“hI HI
”,“hI hi
”,...等替换为searchKeyword =“Hi hi
”。
我不想这样替换。
当我搜索“Hi hi
”时,它必须高亮显示“Hi hi
”和其他人“hI hi
”或“{{1} “不将其他人改为”HI HI
“。
答案 0 :(得分:0)
如果您想让正则表达式不区分大小写,请在开始时添加(?i)
。您也可以使用$index
替换匹配的部分,其中index
是匹配的group的索引。
因此,使用这些信息,您可以尝试类似
的内容String Contentstr = paragraph.replaceAll("(?i)"+searchKeyword,
"<font color=\"red\">$0</font>");
如果你的searchKeyword
包含一些special characters,请用Pattern.quote()
包装它以生成将自动转义这些字符的特殊含义的正则表达式
String Contentstr = paragraph.replaceAll("(?i)"+Pattern.quote(searchKeyword),
"<font color=\"red\">$0</font>");