我尝试使用正则表达式在句子中加粗搜索词。
String sentence = “help me subString in regexhelp. “
String searchWord=”help”;
sentence.replaceAll("(^|\\s)(" + "(?i)" + searchWord + ")(\\s|$)", "$1<b>$2</b>$3");
输出:帮助 regexhelp中的subString。
预期输出:帮助我在正则表达式中的subString 帮助
我想加粗所有匹配的字符串天气是字符串还是子字符串。
答案 0 :(得分:1)
对于这种情况,您需要从正则表达式中删除前面的(^|\\s)(
和")(\\s|$)"
模式,因为当前的正则表达式将匹配字符串help
,前提是它的前面是开头的线锚或空格,然后是线锚或空格的结尾。为了匹配子字符串help
,您需要从正则表达式中删除这些模式。
String sentence = "help me subString in regexhelp. ";
String searchWord = "help";
System.out.println(sentence.replaceAll("(?i)(" + searchWord + ")", "<b>$1</b>"));
输出:
<b>help</b> me subString in regex<b>help</b>.
答案 1 :(得分:0)
(help)
或在你的情况下
"("+"(?i)"+searchWord+")"
只需尝试此操作并替换为<b>$1</b>
。请参阅演示。