我想从'targetString'替换所有匹配的'searchString'
(在JAVA中使用<span class="xyz">searchString</span>
维护其来自targetString的情况
例如 - targetString - “超级运动” searchString - “s”和“S”,“Sp”,“SP”和“Sr” 产生的targetString应该是 -
表示“s” - <span>S</span>uper <span>S</span>port<span>s</span>
表示“S” - <span>S</span>uper <span>S</span>port<span>s</span>
表示“Sp” - Super <span>Sp</span>orts
我已经在Javascript中完成了 - 但需要用Java -
var applyHighlighting = function(productFilterKeyword) {
if (productFilterKeyword != "") {
for (var i = 0; i < $scope.highlightableElements.length; i++) {
var regexp = new RegExp(productFilterKeyword, 'ig');
$scope.highlightableElements[i].sourceHTML = $scope.highlightableElements[i].innerHTML;
$scope.highlightableElements[i].innerHTML = $scope.highlightableElements[i].sourceHTML.replace(regexp, '<span style="background-color: yellow">$&</span>');
}
}
}
答案 0 :(得分:0)
如果有详细信息,您可以在评论中发帖,这并不像您所做的那么难。
只需将所有数学替换为span_self span:
String original, result, regex;
String your_search_string = "S";//for example
original = .....
regex = "(" + your_search_string + ")";
result = original.replaceAll(regex, "<span>$1</span>");
java regex中的 $1
是指向一个组的链接。零组$0
是一个完整的正则表达式。