字符串替换正则表达式区分大小写

时间:2015-11-26 07:02:48

标签: java regex string

我想从'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>');
                }
            }
        }

1 个答案:

答案 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是一个完整的正则表达式。