[英]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 -我已经在 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>');
}
}
}
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.