简体   繁体   English

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

[英]String replace regex with Case sensitive

I want to replace all matching occurrences of 'searchString' from 'targetString' (maintaining their case from targetString) with <span class="xyz">searchString</span> in JAVA我想用 JAVA 中的<span class="xyz">searchString</span>替换所有匹配出现的 'targetString' 中的 'searchString'(从 targetString 维护它们的大小写)

For example - targetString - "Super Sports" searchString - "s" and "S" and "Sp" and "SP" and "Sr" Resulting targetString should be -例如 - targetString - "Super Sports" searchString - "s" and "S" and "Sp" and "SP" and "Sr" 结果 targetString 应该是 -

for "s" - <span>S</span>uper <span>S</span>port<span>s</span>对于 "s" - <span>S</span>uper <span>S</span>port<span>s</span>

for "S" - <span>S</span>uper <span>S</span>port<span>s</span>对于“S” - <span>S</span>uper <span>S</span>port<span>s</span>

for "Sp" - Super <span>Sp</span>orts对于“Sp” - Super <span>Sp</span>orts

I've done it in Javascript- but need it in Java -我已经在 J​​avascript 中完成了 - 但需要在 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>');
                }
            }
        }

In case of details, you have post in comments, it is not as hard as you thinsk.如果有细节,你可以在评论中发表,没有你想象的那么难。

Just replace all of mathces to span them_self span:只需替换所有 mathces 以 span them_self 跨度:

  String original, result, regex;
  String your_search_string = "S";//for example
  original = .....
  regex = "(" + your_search_string + ")";
  result = original.replaceAll(regex, "<span>$1</span>");

$1 in java regex is link to a group. Java 正则表达式中的$1是指向组的链接。 the zero group $0 is a whole regex.零组$0是一个完整的正则表达式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM