我正在向項目中添加搜索功能。當輸入一個搜索詞時,我的程序通過一個html字符串進行循環,並用包圍span標籤的搜索詞替換該詞的所有出現。 replaceAll()方法替換單詞,但它不完全是我想要做的。我不知道如何維護原始單詞的情況。例如,如果我搜索'你好':'你好'變成'你好','你好'變成'你好'。爲了解析我使用jsoup的html。替換字符串中出現的所有字,但保留原始字的大小寫
Document doc = Jsoup.parse(content);
Elements elemenets = doc.body().getAllElements();
for (int i = 1; i < elemenets.size(); i++) {
String elementText = elemenets.get(i).text();
if (elementText.toLowerCase().contains(search_term.toLowerCase())) {
elemenets.get(i).html(elemenets.get(i).html().replaceAll("(?i)" + search_term, "<span id = 'first' style ='background-color:#fbaf5d;'>" + search_term + "</span>"));
}
}
String result = doc.toString();
http://stackoverflow.com/questions/8753163/how-can-i-perform-case-insensitive-pattern-search-and-case-preserving-replacemen的可能重複 – ajb