【问题标题】:Java: Replace substring with <b>substring</b> case insensitiveJava:用 <b>substring</b> 替换子字符串不区分大小写
【发布时间】:2018-02-25 07:30:50
【问题描述】:

我正在制作一个搜索数据库的应用程序 - 我希望搜索词在我的输出中加粗。假设我有一个字符串:

String s = "Foo Bar foobAr"; 
String searchTerm = "bar";

现在,无论大小写如何,我都想用 将我的字符串 s 中每一次出现的 searchTerm 括起来(使其变为粗体)。输出应该是:

"Foo <b>Bar</b> foo<b>bAr</b>"

This is relevant,但它使输出与 searchTerm 相同 - 我想保留原始字符串的大小写。

【问题讨论】:

    标签: java string replace substring


    【解决方案1】:

    您可以使用反向引用来替换您想要的字符串。查看this question 了解有关反向引用的更多说明。

    考虑到这一点,这应该可以解决问题:

    s.replaceAll("(?i)(" + searchTerm + ")", "<b>$1</b>")
    

    【讨论】:

    • 是的,就是这样,只需更改为 s.replaceAll... 而不是 searchTerm.replaceAll
    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2010-09-21
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多